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 | ←これも大丈夫 |