Выбор ответа Middle Массивы изнутри обновлено

in_array без строгого режима

Вопрос

Что вернёт in_array("abc", [0]) в PHP 8 и in_array("1e1", ["10"])?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: false и true. inarray по умолчанию сравнивает через ==.

Варианты ответа

  1. true и true
  2. false и false
  3. true и false
  4. false и trueправильный ответ

Разбор

in_array по умолчанию сравнивает через ==. В PHP 8 "abc" == 0 ложно (в PHP 7 было истинно). А "1e1" == "10" истинно: обе строки числовые и равны как числа. Чтобы не ловить такие сюрпризы, передают третий аргумент true: in_array($x, $list, true).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.