Les Enums pures et les Enums avec valeur de base implémentent toutes deux une interface interne nommée
UnitEnum. UnitEnum comprend une méthode statique
cases(). cases() renvoie un tableau compact de
tous les cas définis dans l'ordre de leur déclaration.
<?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());La définition manuelle d'une méthode cases() sur un Enum entraînera une erreur fatale.