Что такое enum в PHP?
Концепция перечислений или enum была официально добавлена в язык программирования PHP начиная с версии 8.1, предоставив разработчикам мощный инструмент для работы с фиксированными наборами возможных значений. Перечисления создаются с помощью ключевого слова enum, после которого указывается имя и список возможных вариантов через ключевое слово case, например: энум Статус с вариантами Пендинг и Актив.
Главным преимуществом перечислений является их полная типобезопасность. В отличие от обычных строк или целых чисел, которые раньше часто использовались для этих целей, энумы гарантируют, что переменная может принять только заранее разрешенный и валидный набор значений, исключая ошибки из-за опечаток в коде.
В PHP также поддерживаются так называемые скалярные или привязанные перечисления. Вы можете явно указать базовый тип данных, например string или int, после чего каждому элементу перечисления присвоить конкретное скалярное значение, такое как: энум Статус со строковым типом и значением Пендинг равным строке пендинг.
Помимо хранения простых констант, перечисления в PHP обладают возможностью полноценного добавления методов. Вы можете определять внутри энумов собственные методы, реализовывать интерфейсы и использовать трейты, что превращает их в полноценные объекты с богатой внутренней бизнес-логикой.
Использование энумов существенно снижает вероятность возникновения багов, делает сигнатуры методов более прозрачными и избавляет от необходимости писать дополнительные проверки валидности входящих данных на уровне сервисов или контроллеров.