phpbar.de logo

Mailinglisten-Archive

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

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

Andreas Heigl a.heigl at wdv.de
Don Feb 10 10:40:06 CET 2005


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 ;-)

Gruß

Andreas
-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de



php::bar PHP Wiki   -   Listenarchive