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