Liste de valeurs

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.