Liste mit Werten

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.