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.