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

あけお

スクールに多額のお金を支払う前に、僕の記事で学習してね!

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

目次

1. 結論

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


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

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

PHP
<?php

$a = 0;

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

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

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

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

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

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

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

PHP
<?php

$a = 0;

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

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

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

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

4. まとめ

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

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

あけお

あなたの挑戦を応援しています!!

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