in_array()にやられた

久々にはまった。
走査対象の配列に0が入ってるときは要注意。
検索する値が文字列の場合は true になる。array_search()等でも同様の結果になる。

結果
0 == 1 false
'0' == 1 false
'A' == 0 true ←これ注意!
in_array(0, array(0,1)) true
in_array(0, array('0','1')) true
in_array('0', array(0,1)) true
in_array('A', array(0,1)) true ←これにやられた
in_array('A', array('0','1')) false ←これなら大丈夫
in_array('A', array(0,1), true) false ←これも大丈夫