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