Enum (PHP 8.1+) - перечислимый тип, представляющий фиксированный набор значений:
// Unit enum (без значений)
enum Status {
case Active;
case Inactive;
case Banned;
}
// Backed enum (со скалярными значениями)
enum Color: string {
case Red = 'red';
case Green = 'green';
case Blue = 'blue';
}
$c = Color::Red;
echo $c->value; // "red"
$c = Color::from('green'); // Color::Green
$c = Color::tryFrom('xxx'); // null
Enum может содержать методы, реализовывать интерфейсы, использовать трейты. Не может иметь конструктор или свойства (кроме readonly в backed). Отлично подходит для конечных автоматов, статусов, типов.