И чистые, и типизированные перечисления реализуют внутренний интерфейс
с именем UnitEnum.
Интерфейс UnitEnum включает статический метод cases().
Метод cases() возвращает упакованный массив вариантов, которые определили в перечислении. Варианты возвращаются в порядке объявления.
<?php
Suit::cases();
// Возвращает: [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit::Spades]
?>
Ручное определение метода cases() в перечислении приведёт к фатальной ошибке.