Pure Enum と Backed Enum は、 共に内部インターフェイス UnitEnum を実装しています。 UnitEnum には static メソッド cases() が含まれています。 cases() は、 定義されている全ての case を宣言された順に含めた配列を返します。
UnitEnum
cases()
<?php Suit::cases(); // [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit::Spades] を生成 ?>
列挙型において、手動で cases() メソッドを定義すると、致命的なエラーが発生します。