【PHP】 == と === の違い

忘れてたのでメモ。

== 値が等しい場合、TRUE
=== 値とが等しい場合、TRUE

以下のような文字列の位置チェックで、ちょっと躓いた。

$temp = "abcde";
if (strpos($temp, "a")) {
  // 文字列がヒットした時の処理
}

上記の場合だと、”a”は文字列$temp上に存在するので、ヒットした時の処理が動くと思っていたが、動かなかった。

で、以下のように修正すると、意図した動作になった。

$temp = "abcde";
if (strpos($temp, "a") !== false) {
  // 文字列がヒットした時の処理
}

省略形で条件式を書くと、== trueとされ、返り値が0の場合だと== falseと同義になり、条件が外れてたっぽい。

!==とすることで、(int)0(boolean)falseが違うものとして判別できるので、正しい動きになった。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です