null und == vs. ===

null und == vs. ===

am 22.11.2006 16:53:58 von Karsten Wutzke

Hallo!

Ich beziehe mich auf folgenden Artikel:

http://www.php-faq.de/q/q-variable-testen.html

Da steht als letzter Satz:

"... Der Vergleich === ist nur dann wahr, wenn die beiden Operanden den
gleichen Typ und den gleichen Wert haben."

Wenn ich nun gegen null teste, dann macht es doch eigentlich keinen
Unterschied, ob ich nun == oder === verwende, da null ja keinen Typ
besitzt, oder wie ist das?

Karsten

Re: null und == vs. ===

am 22.11.2006 17:17:04 von Wolfgang Fellger

Karsten Wutzke schrieb:

>Wenn ich nun gegen null teste, dann macht es doch eigentlich keinen
>Unterschied, ob ich nun == oder === verwende, da null ja keinen Typ
>besitzt, oder wie ist das?

Nein, siehe http://de.php.net/manual/de/language.types.null.php :
NULL ist der einzig mögliche Wert des Typs NULL.

Also gilt
false == NULL
aber
false !== NULL

--
Wolfgang Fellger

Re: null und == vs. ===

am 22.11.2006 17:21:20 von Sven Drieling

Karsten Wutzke wrote:

Hallo,

> Wenn ich nun gegen null teste, dann macht es doch eigentlich keinen
> Unterschied, ob ich nun == oder === verwende, da null ja keinen Typ
> besitzt, oder wie ist das?

Macht es. Siehe PHP-Handbuch unter

Appendix P. PHP type comparison tables


tschuess
[|8:)

Re: null und == vs. ===

am 22.11.2006 17:58:59 von Niels Braczek

Karsten Wutzke schrieb:

> Wenn ich nun gegen null teste, dann macht es doch eigentlich keinen
> Unterschied, ob ich nun == oder ===3D verwende, da null ja kein=
en Typ
> besitzt, oder wie ist das?

Auf null testet man mit is_null().

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: null und == vs. ===

am 23.11.2006 23:37:48 von Jens Himmelrath

Niels Braczek schrieb:
> Karsten Wutzke schrieb:
>
>> Wenn ich nun gegen null teste, dann macht es doch eigentlich keinen
>> Unterschied, ob ich nun == oder === verwende, da null ja keinen Typ
>> besitzt, oder wie ist das?
>
> Auf null testet man mit is_null().

Und wo ist da der vorteil gegenüber === wenn man wissen will ob es exakt
null ist?

regards,
Jens

Re: null und == vs. ===

am 24.11.2006 00:33:19 von Niels Braczek

Jens Himmelrath schrieb:
> Niels Braczek schrieb:

>> Auf null testet man mit is_null().
>=20
> Und wo ist da der vorteil gegenüber ===3D wenn man wissen will ob=
es exakt=20
> null ist?

- Es ist weniger fehleranfällig.
- Es funktioniert auch mit älteren Installationen.
- Es tut genau was es soll.
Daher gibt es keinen Grund, eine Alternative in Betracht zu ziehen.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: null und == vs. ===

am 24.11.2006 09:37:43 von Jens Himmelrath

Niels Braczek schrieb:
> Jens Himmelrath schrieb:
>> Niels Braczek schrieb:
>
>>> Auf null testet man mit is_null().
>> Und wo ist da der vorteil gegenüber === wenn man wissen will ob es exakt
>> null ist?
>
> - Es ist weniger fehleranfällig.

-v?
Davon finde ich beim spontanen überfliegen des Manuals nichts.

> - Es funktioniert auch mit älteren Installationen.

NULL und === kamen AFAIR beide mit PHP4.

> - Es tut genau was es soll.

Bei mir bisher === auch.

> Daher gibt es keinen Grund, eine Alternative in Betracht zu ziehen.

Dito, aber vielleicht kannst du mich ja aufklären.

regards,
Jens

Re: null und == vs. ===

am 24.11.2006 10:10:16 von do.not.REMOVETHAT

Jens Himmelrath schrieb:

> Und wo ist da der vorteil gegenüber === wenn man wissen will ob es exakt
> null ist?

Man muss nicht immer zwischen PHP und MySQL umdenken und man läuft nicht
in die Gefahr sich bei der Anzahl der Gleichzeichen zu verzählen. Das
ist doch bekloppt. Irgendwann fällt denen auch noch was ein, was man mit
4 Gleichzeichen hintereinander machen kann, und mit 5,...

Grüße, Matthias


--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.

Re: null und == vs. ===

am 24.11.2006 12:30:44 von Niels Braczek

Jens Himmelrath schrieb:
> Niels Braczek schrieb:
>> Jens Himmelrath schrieb:
>>> Niels Braczek schrieb:

>>>> Auf null testet man mit is_null().

>>> Und wo ist da der vorteil gegenüber ===3D wenn man wissen will =
ob es exakt=20
>>> null ist?
>>=20
>> - Es ist weniger fehleranfällig.
>=20
> -v?

$var ===3D null
$var == null
$var =3D null

vs.

is_null( $var )

Bei Verwendung des Vergleichsoperators muss man sich dessen immer Gewahr
sein, dass man (im Gegensatz zu sonst) eine typsichere Prüfung machen
muss. is_null() schließt ein Vertun aus.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------