In PHP ist is_null () eine häufig verwendete Funktion, um zu überprüfen, ob eine Variable NULL ist. Aufgrund des Typsumwandlungsmechanismus in PHP kann IS_NULL () in einigen Fällen jedoch unerwartete Ergebnisse zurückgeben, was zu Fehleinschätzungen führt. Daher ist es sehr wichtig zu verstehen, wie is_null () korrekt verwendet werden kann und die Rückgabe falscher Fehler vermeiden kann.
Schauen wir uns zunächst die grundlegende Verwendung von is_null () an. Es akzeptiert einen Parameter und gibt True oder False zurück, um anzuzeigen, ob die Variable null ist.
<span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>
In diesem Beispiel ist der Wert von $ var1 null , so dass is_null ($ var1) true zurückgibt, während der Wert von $ var2 die Zeichenfolge "Hallo" ist, also falsch .
Obwohl is_null () erkennen soll, ob eine Variable Null ist, können in einigen Fällen auch andere Wertearten ähnlich sein, was zu Fehleinschätzungen führt.
In PHP werden sowohl 0 als auch '0' als "leer" angesehen, aber sie sind nicht gleich Null . Wenn Sie is_null () verwenden, um diese Werte zu überprüfen, werden sie korrekt als falsch beurteilt.
<span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">'0'</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>
Leere Arrays [] und Null unterscheiden sich auch in PHP. Obwohl sie in einigen Fällen ähnlich aussehen, gibt is_null () explizit false zurück.
<span><span><span class="hljs-variable">$var1</span></span><span> = [];
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_null</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>
Wenn Sie is_null () missbrauchen, um ein leeres Array zu beurteilen, kann dies zu falschen Ergebnissen führen.
Um eine Fehleinschätzung zu vermeiden, müssen wir zunächst die Urteilslogik von is_null () und die Typ -Conversion -Regeln von PHP verstehen. Hier sind einige Tipps, um Fehleinschätzungen zu vermeiden:
Wenn Sie feststellen müssen, ob eine Variable null ist, und befürchten, dass sie mit anderen "leeren" Werten (z. B. 0 , '0' , leeren Arrays usw.) verwechselt werden kann, können Sie das strenge Gleichstellungszeichen === verwenden, um sicherzustellen, dass sowohl der Typ als auch der Wert konsistent sind.
<span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-string">'0'</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>
Dies kann Fehleinschätzungen vermeiden, die durch Typumwandlung verursacht werden.
Es gibt viele "leere" Werte in PHP, wie false , 0 , " (leere Zeichenfolge), leere Arrays usw. Wenn Sie diese verschiedenen Situationen beurteilen müssen, können Sie die Funktion leere () anstelle von is_null () verwenden.
<span><span><span class="hljs-variable">$var1</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$var2</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-variable">$var3</span></span><span> = [];
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var1</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var2</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$var3</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span></span>
leer () wird true zurückgegeben, wenn die Variable ein leerer Wert ist, einschließlich Null , 0 , leerer Zeichenfolge, leeres Array usw.
Manchmal benötigen Sie möglicherweise eine komplexere Logik, um den Zustand einer Variablen zu beurteilen. Verschiedene Situationen können durch benutzerdefinierte Funktionen behandelt werden. Wenn Sie beispielsweise überprüfen, ob eine Variable NULL oder andere "leere" Werte ist, können Sie zuerst Null ausschließen und dann andere Überprüfungen durchführen.
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">isActuallyNull</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$var</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$var</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-literal">null</span></span><span>)); </span><span><span class="hljs-comment">// bool(true)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">isActuallyNull</span></span><span>(</span><span><span class="hljs-string">''</span></span><span>)); </span><span><span class="hljs-comment">// bool(false)</span></span><span>
</span></span>
In PHP ist is_null () eine sehr nützliche Funktion, aber seien Sie vorsichtig mit seinen Fehleinschätzungsproblemen. Aufgrund des Typsumwandlungsmechanismus von PHP können viele "Null" -Werte mit Null verwechselt werden. Daher ist die Verwendung des strengen Vergleichsoperators === , um verschiedene "leere" Werte klar zu unterscheiden oder die Inspektionslogik anhand der tatsächlichen Bedürfnisse anzupassen, ein effektiver Weg, um Fehleinschätzungen zu vermeiden. Durch ein vernünftiges Urteil können Sie die Genauigkeit des Codes sicherstellen und Fehler vermeiden, die durch eine Fehleinschätzung verursacht werden.