phpbar.de logo

Mailinglisten-Archive

[php] NULL oder FALSE

[php] NULL oder FALSE

Yannik Hampe yannik at cipher-code.de
Sam Nov 25 22:18:14 CET 2006



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