Выбор ответа 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).

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

  1. new Status("paid")
  2. Status::Paid("paid")
  3. Status::from("paid")правильный ответ
  4. (Status) "paid"

Разбор

У backed enum (с типом string или int) есть статические методы from (бросает ValueError для неизвестного значения) и tryFrom (возвращает null). Создать вариант через new нельзя: варианты это синглтоны. Приведения типа к enum нет. Значение варианта читается через Status::Paid->value.

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

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

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