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 技術ブログ