Tanto Pure Enums quanto Backed Enums 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
Naipe::cases();
// Produz: [Naipe::Copas, Naipe::Ouros, Naipe::Paus, Naipe::Espadas]
?>
Definir manualmente um método cases()
em uma Enum resultará em um erro fatal.