PHP 値比較(==)と型比較(===) イコールの数の違いを解説

if文を学んでると出てくる「==」と「===」

最初はわかりづらいですよねこいつら。

本日もざっくり解説していきます!!!

サンプルコード上に出てくるvar_dumpの使い方はこちらの記事を参考にしてください!

https://akeoblog.com/vardump/
目次

1. 結論

「==」
の比較をしている(緩めのチェック)

「===」
値と型を比較をしている(厳しめのチェック)

2. サンプルコード「==」緩めのチェック

<?php

$a = 0;

if ($a == "0") {
    //処理が実行される
}

if ($a == null) {
    //処理が実行される
}

if ($a == false) {
    //処理が実行される
}

if (empty($a)) {
    //処理が実行される
}

PHPでは 「0」「null」「false」「空文字」も値としては同じものとして扱われるらしい!

この書き方だと全部処理が実行されてしまうよ!!
思わぬ挙動になる可能性あり!こわい、、。

3. サンプルコード「===」厳しめのチェック

置換(文字列)

<?php

$a = 0;

if ($a === "0") {
    //処理が実行されない
}

if ($a === null) {
    //処理が実行されない
}

if (is_null($a)) {
    //処理が実行されない
}

三つ目のif文に注目です!
empty()からis_null()に変えてます!!

4. まとめ

PHPは良くも悪くも「型」についてそこまで意識せずともコードが動いてしまいます。

思わぬバグを生まないように「厳しめのチェック」をしていきたいものですね。

よかったらシェアしてね!
目次