Выбор ответа Junior PHP 8.x: enum, readonly, match спрашивают часто обновлено
match против switch
Вопрос
Чем match отличается от switch?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сравнивает через ===, возвращает значение, не проваливается в ветки. match (PHP 8.0) это выражение: его результат можно присвоить.
Варианты ответа
matchсравнивает нестрого, какswitch, но короче записывается- Сравнивает через
===, возвращает значение, не проваливается в веткиправильный ответ matchтребуетbreakв каждой ветке, иначе выполнит следующуюmatchработает только с целыми числами и строками-константами
Разбор
match (PHP 8.0) это выражение: его результат можно присвоить. Сравнение строгое, поэтому match("1") { 1 => ... } не совпадёт. Ветка содержит одно выражение, проваливания нет, несколько значений перечисляются через запятую. При отсутствии подходящей ветки и default бросается UnhandledMatchError. switch сравнивает через == и требует break.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.