PHPs Null- und Leer-Vergleich
In PHP kann das Auffinden von Nullwerten verwirrend sein, insbesondere wenn versucht wird, sie zu vergleichen. Dieser Artikel untersucht den Unterschied zwischen Null- und Leerwerten und geht auf die Frage ein, warum eine leere Zeichenfolge einen Nullvergleich auslösen könnte.
Der Unterschied zwischen Null und Leer
PHP unterscheidet zwischen Null- und Leerwerten. Null bedeutet das Fehlen eines Werts, während sich leer auf Werte mit einem falschen Wert bezieht. Zu den leeren Werten gehören die leere Zeichenfolge (''), 0, false, null und leere Arrays ([]).
Vergleichsoperatoren
Der Vergleichsoperator == , das in Ihrem Code verwendet wird, vergleicht zwei Werte entsprechend ihrer Gleichheit. Das Vergleichsverhalten von PHP unterscheidet sich jedoch geringfügig von anderen Programmiersprachen. Bei Verwendung von == werden null, false, 0, die leere Zeichenfolge und leere Arrays als gleich behandelt.
Lösung
Um dieses unerwartete Verhalten zu vermeiden, verwenden Sie die stattdessen den strengen Vergleichsoperator === verwenden. === prüft sowohl den Wert als auch den Typ der verglichenen Variablen und gibt nur dann „true“ zurück, wenn beide identisch sind.
<code class="php">$a = ''; if($a === NULL) { echo 'is null'; }</code>
Durch die Verwendung von === gibt die Bedingung korrekt „false“ zurück, da es sich um eine leere Zeichenfolge handelt nicht unbedingt gleich Null.
Zusammenfassend lässt sich sagen: Der ==-Operator von PHP vergleicht Werte locker und ermöglicht so inkonsistente Vergleiche mit Null- und leeren Werten. Um diese Mehrdeutigkeit zu vermeiden, wird empfohlen, in solchen Situationen den strengen Vergleichsoperator === zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum löst eine leere Zeichenfolge in PHP einen Nullvergleich aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!