Что такое enum? Backed enum vs unit enum?

Ответ
// Unit enum - без скалярных значений
enum Suit {
    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;
}

// Backed enum - с привязкой к int или string
enum Status: string {
    case Active = 'active';
    case Inactive = 'inactive';

    // Могут содержать методы
    public function label(): string {
        return match($this) {
            self::Active => 'Активен',
            self::Inactive => 'Неактивен',
        };
    }
}

// Backed enum: from/tryFrom
$s = Status::from('active');      // Status::Active
$s = Status::tryFrom('unknown');  // null
$s = Status::Active->value;       // 'active'
Status::cases();                   // все значения
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.