phpbar.de logo

Mailinglisten-Archive

[php] NULL , 0, '' ????

[php] NULL , 0, '' ????

Ralf Müller r_mueller at imp-ag.de
Don Feb 10 10:51:37 CET 2005


On Thu, 10 Feb 2005 10:40:06 +0100
Andreas Heigl <a.heigl at wdv.de> wrote:

> Ralf Müller schrieb:
> 
> > Hallo zusammen,
> > 
> > mir ist folgendes aufgefallen:
> > 
> > Aus: 
> > 
> > $v1 = NULL; $v2 = 0; $v3 = '';
> > echo ( $v1 == $v2 ) ? '|v1 == v2|' : '|v1 != v2|';
> > echo ( $v1 == $v3 ) ? '|v1 == v3|' : '|v1 != v3|';
> > echo ( isset($v1) ) ? '| v1 set| ' : '|v1 unset| ';
> > echo ( isset($v2) ) ? '| v2 set| ' : '|v2 unset| ';
> > 
> > ergibt sich, dass eine Variable, die nicht gesetzt ist, also keinen wert hat,
> > == 0 und == dem leeren string ist.
> > 
> > Natürlich könnte ich === verwenden, aber: macht es überhaupt sinn, den leeren
> > string oder sogar die 0 wie eine variable ohne Werte betrachten zu können?
> > 
> > NULL und 0 sollten doch garnicht miteinander vergleichbar sein.
> > 
> 
> Genausowenig sollten 0 und '' miteinander vergleichbar sein. Oder '' und
> NULL. Da PHP aber eine automatische Typkonvertierung vornimmt musst du zum
> Abfangen dieser Verschiedenen Möglichkeiten aber '===' benutzen. Das ist
> nunmal der Preis, den man zahlen muss, wenn man sich nicht mit
> Typdefinitionen aufhalten will.
> Sonst musst du wohl oder übel zu einer anderen Sprache wechseln ;-)
> 
> Übrigens ist NULL == FALSE ;-)
> 

genauso wie '' oder 0.

php::bar PHP Wiki   -   Listenarchive