PHP WTF #8

$array = array(true, null);  var_dump(in_array('', $array)); // true var_dump(in_array(0, $array)); // true var_dump(in_array(763, $array)); // true var_dump(in_array('cheese', $array)); // true var_dump(in_array(new stdClass(), $array)); // true var_dump(in_array([], $array)); // true 

Tja, PHP und seine automatische Typumwandlung. Wahnsinn, was so alles in dem Array drin ist! in_array bitte nur mit dem dritten Parameter strict auf true benutzen. Sollte ohnehin default sein.

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) 

Schon besser:

$array = array(true, null);  var_dump(in_array('', $array, true)); // false var_dump(in_array(0, $array, true)); // false var_dump(in_array(763, $array, true)); // false var_dump(in_array('cheese', $array, true)); // false var_dump(in_array(new stdClass(), $array, true)); // false var_dump(in_array([], $array, true)); // false