Комментарии 5
А почему нельзя просто перечислить возможные значения, не используя ключевое слово
case
? Есть какая-то причина, или же это опять из серии «у нас будет не так, как у всех»?0
Возможно, проблема с парсингом. Далеко ходить не надо, синтаксис для атрибутов как долго выбирали
0
Видимо, потому что enum реализован не как надстройка над int, а как самостоятельный класс.
А конструкцию
case XXX = YYY;
стоит рассматривать просто как синтаксический сахар:
const XXX = new ClassName(YYY);
с неявной реализацией from
и value
.
0
Помимо полей "case" в enum может быть еще много всего. По сути это разновидность класса. Там могут быть методы, он может реализовывать интерфейсы или использовать трейты.
Вроде и полезно может оказаться, но страшно как это могут использовать, забыв о, например, SRP, да с магическими методами
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Enum в PHP 8.1 — для чего нужен enum, и как реализован в PHP