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

Linda Hamilton
Freigeben: 2024-11-04 13:31:02
Original
489 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage