Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wird „$a == NULL“ als wahr ausgewertet, wenn „$a“ in PHP ein leerer String ist?

Warum wird „$a == NULL“ als wahr ausgewertet, wenn „$a“ in PHP ein leerer String ist?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 13:31:02441Durchsuche

Why does `$a == NULL` evaluate to true when `$a` is an empty string in PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn