[PHP] 比較演算子 == と === の違い

PHPには === (イコールが3個) という比較演算子がある。

C++やC#から来た人は意外に思うかも。僕も最初「なんだこれ?」と思った。

マニュアルを見て違いを押さえておく。

名前 結果
$a == $b 等しい 型の相互変換をした後で $a が $b に等しい時に TRUE。
$a === $b 等しい $a が $b に等しく、および同じ型である場合に TRUE 。

たとえば

  • $a = 123;
  • $b = ‘123’;

の場合、以下の結果となる

  • $a == $b はTRUE
  • $a === $b は型の違いによりFALSE

この否定の演算子もある。振る舞いは同様。

名前 結果
$a != $b 等しくない 型の相互変換をした後で $a が $b に等しくない場合に TRUE。
$a !== $b 等しくない $a が $b と等しくないか、同じ型でない場合に TRUE 。

参考サイト

PHP: 比較演算子 – Manual
http://php.net/manual/ja/language.operators.comparison.php