Mailinglisten-Archive |
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