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.