型にはまる

PHP には型を考慮した比較演算子 === と !== があります。PHP の == と != はいろいろ問題があって、前者のほうを使うほうが多いようなのですが、型があるせいではまりました・・・。

データベースで int 型のカラム param1 があったときに、ORマッパーから取得した値は int 型で、HTML の POST で取得した値が string 型になっていました(汗)。

if ($obj->param1 === 99) と if ($_POST['param1'] === '99') のように書き分けをしないと誤動作しました。最初は全然原因がわからず苦労しました。Java みたいに厳密に型を意識して、場合によっては int でキャストする必要もありそうですね・・・。