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.