Список значений

И чистые, и типизированные перечисления реализуют внутренний интерфейс с именем UnitEnum. Интерфейс UnitEnum включает статический метод cases(). Метод cases() возвращает упакованный массив вариантов, которые определили в перечислении. Варианты возвращаются в порядке объявления.

<?php
enum Suit
{
case
Hearts;
case
Diamonds;
case
Clubs;
case
Spades;
}

var_dump(Suit::cases());

enum
SuitBacked: string
{
case
Hearts = 'H';
case
Diamonds = 'D';
case
Clubs = 'C';
case
Spades = 'S';
}

var_dump(SuitBacked::cases());

Ручное определение метода cases() в перечислении приведёт к фатальной ошибке.