in_arrayという関数

配列に該当する要素が含まれていれば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に設定することで比較を’===’で行うようになるのでこれを用いて書くことで、処理次第では より正確な比較も可能となる。