【PHP】のin_array()はhaystackに存在していないneedleを入力されてもtrueが返る。

のはなぜなのか。

$arr = [0,1,2,3,4,5];
$res = in_array('?', $arr);
var_dump($res);
// true


$arr = [0,1,2,3,4,5];
$res = in_array('?', $arr, true);
var_dump($res);
// false

なぜなのか。