PHPの==と===の罠


演算子

説明

==

値が等しい場合TRUEを返す

===

値とデータ型が等しければTRUEを返す



基本的にこんな説明になっています。
実際に

<?php
$a = 2;
$b = '2';

if($a == $b){
	print('true');    //TRUE
}

とデータ型を比較しないのでTRUEで返ってきます。

ではこれはどうでしょう。

<?php
$a = 2;
$b = '2c11';

if($a == $b){
	print('true');
}

誰がどう見たって同じではないのに、TRUEが返ってきます。
バグではなく仕様らしいです。

より詳しく知りたい方はここに書いてあるので読んでみましょう。
PHPの文字列比較で気をつけるべきこと – 暗黙の型変換 - EC studio 技術ブログ