【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に触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

「【PHP】 == と === の違い」への1件のフィードバック

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください