Mailinglisten-Archive |
Armin Briatta wrote: > Hallo, Hallo Armin. > > ich habe eine Verständnisfrage zu NULL und FALSE: > > ich fülle ein array $bilddaten über getimagesize($irgendeineDatei). Ob > die Datei tatsächlich eine Bilddatei ist, erfahre ich so: > > if ($bilddaten) > > als auch so: > > if ($bilddaten!=NULL). > > > Was ist denn eigentlich korrekt? Oder ist das gleich, ob ich nach FALSE > oder nach NULL frage? In dem Fall ist es egal... Aber das gleiche ist es nicht. var_dump($bilddaten); sollte dir ausgeben, ob es sich um null oder false handelt. wenn du null zu einem boolean castest: (bool)null dann bekommst du false. So kannst du dir das anzeigen lassen: var_dump((bool)null); bei einer Abfrage if (Ausdruck) wird Ausdruck zu einem boolean gecastet, wenn es keiner ist. Wenn in Ausdruck also noch etwas anderes steht, welches sich nach false casted (spontan fällt mir ein: 0,null,'' (leerer string)), dann wird if entsprechend nicht ausgeführt. Wenn du nicht willst, das php versucht rumzucasten (in manchen Situationen kann dies nämlich zu interessanten bugs führen), musst duu 3 Gleichheitszueichen (bzw. bei Ungleichheit Ausrufezeichen und 2 gleichheitszeiche) verwenden und einen Vergleich als Ausdruck angeben: if ($bilddaten !==null) oder if ($bilddaten !==false) sollten entsprechend nur funktionieren, wenn $bilddaten auch wirklich false oder null ist... > > Liebe Grüße > Armin Yannik
php::bar PHP Wiki - Listenarchive