В чем причина такого странного поведения PHP?

У меня есть следующий код:

$data = array(); // prep array
$data['aardvark'] = true;

print_r($data); // output array
echo "\n";
var_dump(in_array('zebra', $data));

Вывод выглядит следующим образом:

Array
(
    [aardvark] => 1
)

bool(true)

Несмотря на то, что зебра явно отсутствует в массиве. Похоже, это связано с системой свободных типов PHP. (bool) 'zebra' равно true , а есть true в массиве, поэтому in_array возвращает истину?

Думаю, я вижу логику, но она ошибочна. Это ошибка PHP?

Ура.

6
задан Matthew 23 November 2011 в 17:48
поделиться