忘れてたのでメモ。
== | 値が等しい場合、TRUE |
---|---|
=== | 値と型が等しい場合、TRUE |
以下のような文字列の位置チェックで、ちょっと躓いた。
$temp = "abcde";
if (strpos($temp, "a")) {
// 文字列がヒットした時の処理
}
上記の場合だと、”a”は文字列$temp上に存在するので、ヒットした時の処理が動くと思っていたが、動かなかった。
で、以下のように修正すると、意図した動作になった。
$temp = "abcde";
if (strpos($temp, "a") !== false) {
// 文字列がヒットした時の処理
}
省略形で条件式を書くと、== trueとされ、返り値が0の場合だと== falseと同義になり、条件が外れてたっぽい。
!==とすることで、(int)0と(boolean)falseが違うものとして判別できるので、正しい動きになった。
「【PHP】 == と === の違い」への1件のフィードバック