Перечисления — это ограничивающий слой поверх классов и констант классов, предназначенный для предоставления способа определения замкнутого набора возможных значений для типа.

<?php
enum Suit
{
    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;
}

function do_stuff(Suit $s)
{
    // ...
}

do_stuff(Suit::Spades);
?>