Both Pure Enums and Backed Enums implement an internal interface named
UnitEnum. UnitEnum includes a static method
cases(). cases() returns a packed array of
all defined Cases in the order of declaration.
<?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());Manually defining a cases() method on an Enum will result in a fatal error.