Listagem de valores

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.