型の違うデータを比較すると、意図せぬ結果になる場合があります。次の例では、1と1円を比較した結果、「一致」と表示されてしまいます。
<?php $a = 1; $b = "1円"; if ($a == $b) { echo "一致"; } else { echo "一致しません"; } ?>
これはPHPの型の自動変換によるもので、どちらも数値に変換されて比較されているために、一致すると判断されます。
対策は、型まで比較する演算子「===」を使う方法があります。
<?php $a = 1; $b = "1円"; if ($a === $b) { echo "一致"; } else { echo "一致しません"; } ?>