PHPでは、2つの式の値とタイプがまったく同じかどうかを比較するために使用される3つの等しい標識(===)と呼ばれます。予期しないタイプ変換を防ぎ、比較結果の精度を確保することができます。
厳密な平等オペレーターは、2つの変数の値を比較するだけでなく、それらが同じタイプであるかどうかをチェックします。たとえば、番号0と文字列「0」の値が同じで、タイプが異なる場合でも、===比較を使用するとfalseが返されます。
var_dump(0 === "0"); // 間違い var_dump(0.0 === "0"); // 間違い var_dump( "1" === 1); // 間違い
通常の平等標識(==)はゆるい比較演算子であり、比較中にタイプ変換が自動的に実行されるため、異なるタイプで等しい値が真である場合になる場合があります。
var_dump(0 == "0"); // 真実 var_dump(0.0 == "0"); // 真実 var_dump( "1" == 1); // 真実
2つの変数が同じ値だけでなく、同じタイプのものであることを確認する必要がある場合は、厳密な平等オペレーターを使用する必要があります。これは、特にオブジェクトや配列などの複雑なデータ構造を扱う場合、暗黙のタイプ変換によって引き起こされる論理エラーを回避するために特に重要です。