Почему in_array()
иногда ведет себя так странно и возвращает такие неожиданные результаты?
Давайте рассмотрим несколько примеров:
$arrayWithTrue = ['Andreas', 'Philipp', true];
$arrayWithNull = [1, 2, 3, null];
$arrayWithMinusOne = [-1];
var_dump(in_array('Gary', $arrayWithTrue)); // returns bool(true)
var_dump(in_array(0, $arrayWithNull)); // returns bool(true)
var_dump(in_array(true, $arrayWithMinusOne)); // returns bool(true)
А? Что здесь происходит!?
(Несколько лет назад я задавался этим вопросом, поначалу, странным поведением. Я думал, что это может быть полезно для некоторых людей, поэтому я ввел этот вопрос.)