$array = array(
'egg' => true,
'cheese' => false,
'hair' => 765,
'goblins' => null,
'ogres' => 'no ogres allowed in this array'
);
// Loose checking -- return values are in comments
// First three make sense, last four do not
echo (in_array(null, $array) ? 'good' : 'bad'); // true
echo (in_array(false, $array) ? 'good' : 'bad'); // true
echo (in_array(765, $array) ? 'good' : 'bad'); // true
echo (in_array(763, $array) ? 'бред' : 'good'); // true
echo (in_array('egg', $array) ? 'бред' : 'good'); // true
echo (in_array('hhh', $array) ? 'бред' : 'good'); // true
echo (in_array(array(), $array) ? 'бред' : 'good'); // true
Если указать строгую проверку, все ОК, но почему в таком виде получается не корректно?