Tanto Enumerações Puras quanto Enumerações Apoiadas implementam uma interface interna chamada
UnitEnum. UnitEnum inclui um método estático
cases(). cases() retorna um array embalado com
todos os Casos definidos na ordem de declaração.
<?php
enum Naipe
{
case Copas;
case Ouros;
case Paus;
case Espadas;
}
var_dump(Naipe::cases());
enum NaipeApoiado: string
{
case Copas = 'C';
case Ouros = 'O';
case Paus = 'P';
case Espadas = 'E';
}
var_dump(NaipeApoiado::cases());Definir manualmente um método cases() em uma enumeração resultará em um erro fatal.