Christoph Jeschke: IF - Bedingung wird wahr - warum?

Beitrag lesen

Guten Tag,

if ( $zugriff && $arr_in['besucher_id'] && $arr_in['art']=='storno' )


> Wie kann das sein?  
  
Wenn $arr\_in['art'] === 0 ist, ist 0 == 'storno' wahr. 'storno' wird zu einem Integer gecastet, da 0 auch ein Integer ist. 'storno' wird, wenn es zum Integer gecastet wird, auch 0.  
  
~~~php
$ php -r "var_dump((int) 'storno');"  
int(0)

Prüfe also besser mit === (Wert und Typ müssen übereinstimmen, kein implizites casting), statt mit ==.

Gruß
Christoph Jeschke

--
Zend Certified Engineer
Certified Urchin Admin