PHP Почему in_array возвращает true
Вот весь код: in_array(0, ['text', 'caption'])
Возвращает true. Версия PHP 7.2, в чем причина?
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Функция in_array по умолчанию не использует строгое сравнение, а без этого произойдет странное (в версии до 8, начиная с 8 версии был доработан алгоритм нестрого сравнения и с ним код ниже вернет false):
var_dump(0 == 'text');
// bool(true)
Нужно включить строго сравнение в in_array:
var_dump(in_array(0, ['text', 'caption']));
// bool(true)
var_dump(in_array(0, ['text', 'caption'], true));
// bool(false)
Автор решения: Евгений Малеев
→ Ссылка
Установи строгое сравнение
in_array(0, ['text', 'caption'], true)