Null und nichts in PHP

Vielleicht interessant für den einen oder anderen, dem dadurch die eine oder andere Minute Debuggen erspart bleibt…

Ich bin gerade einem seltsamen Phänomen in einem meiner Scripte nachgegangen. Eine meiner Variablen schien einfach zu verschwinden, dabei sollten nur die Variablen ohne Inhalt ignoriert werden.

Pustekuchen:

$x = 0;
if ($x == '') echo 'leer';

Dieses kleine Stückchen PHP-Programmcode spuckt tatsächlich „leer“ aus, obwohl ich vorher eine 0 in $x gefüllt habe. Der richtige Weg, um zu überprüfen, ob eine Variable einen leeren String enthält, ist also

$x = 0;
if ($x === '') echo 'leer';

T_PAAMAYIM_NEKUDOTAYIM

Aha… Wieder was gelernt. Da wirft einem PHP so eine Fehlermeldung an den Kopf:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/deobaldd/public_html/forum/classes/forum.class.php on line 36

… und dann soll man wissen, was es damit meint… Aber man hat ja Wikipedia:

Paamayim Nekudotayim

Der Gültigkeitsbereichsoperator der Skriptsprache PHP wird offiziell Paamayim Nekudotayim genannt und besteht aus zwei hintereinander gestellten Doppelpunkten (::).

Das Wort stammt aus dem hebräischen und bedeutet übersetzt und transkribiert in etwa „zweimal Doppelpunkt“. Nekudotayim (Doppelpunkt) setzt sich aus Nekuda (Punkt) und der Dual-Endung -ayim (zwei) zusammen. Das Wort Paamayim besteht aus Paam (multiplizieren) und wieder der Endung -ayim.

Aha, also der Scope Resolution Operator.