Listando valores

Tanto los Enums Puros como los Enums Respaldados implementan una interfaz interna llamada UnitEnum. UnitEnum incluye un método estático cases(). cases() devuelve un array empaquetado de todos los Casos definidos en el orden de declaración.

<?php

Suit
::cases();
// Devuelve: [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit::Spades]
?>

Definiar manualmente el método cases() en una enumeración causará en un error fatal.