Heim > Artikel > Backend-Entwicklung > Warum wird „$a == NULL“ als wahr ausgewertet, wenn „$a“ in PHP ein leerer String ist?
NULL in PHP: Wenn eine leere Zeichenfolge nicht Null ist
Bedenken Sie den folgenden PHP-Code:
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
Warum wird „ist null“ ausgegeben, wenn $a eindeutig eine leere Zeichenfolge ist? Ist das ein Fehler?
Gleichheit und Identität verstehen
Der Schlüssel zum Verständnis dieses Verhaltens liegt in der Unterscheidung zwischen Gleichheit (==) und Identität (===) . In PHP prüft ==, ob zwei Operanden denselben Wert haben, während === prüft, ob sie denselben Wert und Typ haben.
Im obigen Code ist $a eine leere Zeichenfolge, was eine Fälschung ist Wert. In PHP werden falsche Werte als gleich NULL, falsch, 0 und leere Arrays behandelt. Daher wird $a == NULL als wahr ausgewertet.
Verwenden von === zur Prüfung auf NULL
Um gezielt zu prüfen, ob eine Variable NULL ist, verwenden Sie den Identitätsoperator (===):
<code class="php">if($variable === NULL) {...}</code>
Beachten Sie das dreifache Gleichheitszeichen. Durch die Verwendung von === stellen Sie sicher, dass die Variable nicht nur falsch ist, sondern auch vom Typ NULL.
Fazit
Der leere String in PHP wird nicht als NULL betrachtet . Um explizit nach NULL zu suchen, verwenden Sie den Identitätsoperator (===). Diese Unterscheidung ist entscheidend, um einen genauen Vergleich und die Logik in Ihrem PHP-Code sicherzustellen.
Das obige ist der detaillierte Inhalt vonWarum wird „$a == NULL“ als wahr ausgewertet, wenn „$a“ in PHP ein leerer String ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!