PHPの比較演算子には、イコールを3つ続けて記述する「===」という演算子があります。
多くの場面で使用される「==」では、文字列や数値を厳密に区別せずに比較が行われますが、
「===」の場合は変数の型も厳密に区別されます。
この比較演算子は、文字列が完全に一致しているかどうかを判定したい場合や、
0, FALSE, NULLなどの値を厳密に判定したい場合に使用します。
比較的よく利用されるケースとしては、strpos関数が挙げられます。
strpos関数は、ある文字列の中から、特定の文字列の位置を検索するための関数です。
検索対象文字列が見つからなかった場合にFALSEを返すようになっていますが、
先頭で見つかった場合に0を返すため、FALSEと0の厳密な区別が必要となります。
[php]
$pos = strpos(‘ABCDEFG’, ‘A’);
if($pos === FALSE){
echo "’A’は見つかりませんでした。";
}
else{
echo "’A’の位置は先頭から{$pos}番目です。";
}
[/php]
上記の例において、「===」ではなく「==」を使用すると、
「’A’は見つかりませんでした。」と表示されてしまいます。
また、if(!$pos) などと記述しても同様になるので、注意が必要です。