Выбор ответа Junior PHP 8.x: enum, readonly, match спрашивают часто обновлено
Типизированные перечисления
Вопрос
Как получить вариант enum Status: string { case Paid = "paid"; } из строки "paid", пришедшей из базы?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Status::from("paid"). У backed enum (с типом string или int) есть статические методы from (бросает ValueError для неизвестного значения) и tryFrom (возвращает null).
Варианты ответа
new Status("paid")Status::Paid("paid")Status::from("paid")правильный ответ(Status) "paid"
Разбор
У backed enum (с типом string или int) есть статические методы from (бросает ValueError для неизвестного значения) и tryFrom (возвращает null). Создать вариант через new нельзя: варианты это синглтоны. Приведения типа к enum нет. Значение варианта читается через Status::Paid->value.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.