PHP の予期しない NULL: 空の文字列が欺瞞するとき
PHP では、等価演算子 == を使用して変数を NULL と比較するときに、これが重要です一般的な期待と一致しない可能性のある微妙な動作を理解するため。これは、空の文字列を扱う場合に特に関係します。
次のコードを考えてみましょう:
<code class="php">$a = ''; if ($a == NULL) { echo 'is null'; }</code>
驚くべきことに、このコード スニペットは「is null」を出力します。これは、慣れている人にとっては直観に反しているように見えるかもしれません。空の文字列の概念は、ほとんどのプログラミング言語では NULL とは異なります。
この動作の理由は、PHP が NULL を他の NULL 値だけでなく、false、0、空の文字列、および空の文字列と同等であると見なしているという事実にあります。 == 演算子を使用する場合は空の配列。これは、$a が明示的な NULL 値ではなく空の文字列であっても、条件 $a == NULL が true と評価されることを意味します。
この問題を修正し、特に NULL を正確にチェックするには、次の使用に切り替える必要があります。厳密な比較演算子 ===。この変更されたコードは正しく false に評価され、予期しない「is null」出力が回避されます。
<code class="php">if ($a === NULL) { echo 'is null'; }</code>
したがって、PHP で変数が NULL に等しいかどうかを判断する場合は、=== 演算子を使用することが重要です。この区別により、比較の精度が保証され、空の文字列が NULL として偽装されることがなくなり、予期せぬ事態が回避されます。
以上がPHP では空の文字列が NULL と等しいのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。