Sowohl Pure Enums als auch Backed Enums implementieren eine interne
Schnittstelle namens UnitEnum.
UnitEnum enthält die statische Methode
cases(). cases() gibt ein gepacktes
Array mit allen definierten Fällen in der Reihenfolge zurück, in der sie
deklariert wurden.
<?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());
Die manuelle Definition der Methode cases() führt bei
einer Enum zu einem fatalen Fehler.