if文による値の比較がうまくいかないとき

スポンサーリンク

型の違うデータを比較すると、意図せぬ結果になる場合があります。次の例では、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 "一致しません";
}
?>

▼実行結果

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク