Listado de valores

Tanto las Enumeraciones Puras como las Enumeraciones Respaldadas implementan una interfaz interna llamada UnitEnum. UnitEnum incluye un método estático cases(). cases() devuelve un array compacto de todos los Casos definidos en el orden de declaración.

<?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());

Definir manualmente un método cases() en una Enumeración resultará en un error fatal.