Выбор ответа Junior PHP 8.x: enum, readonly, match спрашивают часто обновлено

match против switch

Вопрос

Чем match отличается от switch?

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

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

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

Коротко

Правильный ответ: Сравнивает через ===, возвращает значение, не проваливается в ветки. match (PHP 8.0) это выражение: его результат можно присвоить.

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

  1. match сравнивает нестрого, как switch, но короче записывается
  2. Сравнивает через ===, возвращает значение, не проваливается в веткиправильный ответ
  3. match требует break в каждой ветке, иначе выполнит следующую
  4. match работает только с целыми числами и строками-константами

Разбор

match (PHP 8.0) это выражение: его результат можно присвоить. Сравнение строгое, поэтому match("1") { 1 => ... } не совпадёт. Ветка содержит одно выражение, проваливания нет, несколько значений перечисляются через запятую. При отсутствии подходящей ветки и default бросается UnhandledMatchError. switch сравнивает через == и требует break.

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

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

Термины по теме