配列に該当する要素が含まれていればtrueを返す関数in_arrayは使い方に注意したほうがよい。
たとえば
$array = [0,1,2,3,4]; $input = 3; in_array($input, $array);
このようにすれば当然trueがかえってくる。
しかし、”3″(文字列)、3.0(数値),”3.0″でもtrueを返す。
初めの2つはわかるにしても、最後のtrueは違和感を感じるはず。
これはin_arrayにおいて型の比較が’==’で行われていることによる。
in_arrayの第三引数(defaultでfalse)をtrueに設定することで比較を’===’で行うようになるのでこれを用いて書くことで、処理次第では
より正確な比較も可能となる。