PHP の NULL: 空の文字列が Null でない場合
次の PHP コードを考えてみましょう:
<code class="php">$a = ''; if($a == NULL) { echo 'is null'; }</code>
$a が明らかに空文字列なのに「is null」と出力されるのはなぜでしょうか?これはバグですか?
平等と同一性を理解する
この動作を理解する鍵は、平等 (==) と同一性 (===) の区別にあります。 。 PHP では、== は 2 つのオペランドが同じ値を持つかどうかをチェックし、=== はそれらの値と型が同じかどうかをチェックします。
上記のコードでは、$a は空の文字列であり、偽です。価値。 PHP では、falsy 値は NULL、false、0、および空の配列と等しいものとして扱われます。したがって、$a == NULL は true と評価されます。
=== を使用して NULL を確認する
変数が NULL かどうかを具体的に確認するには、恒等演算子を使用します。 (===):
<code class="php">if($variable === NULL) {...}</code>
三重の等号に注意してください。 === を使用すると、変数が false であるだけでなく、NULL 型であることも保証されます。
結論
PHP の空の文字列は NULL とみなされません。 。 NULL を明示的にチェックするには、恒等演算子 (===) を使用します。この区別は、PHP コードで正確な比較とロジックを確保するために重要です。
以上がPHP で `$a` が空の文字列である場合に、`$a == NULL` が true と評価されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。