(PHP 8 >= 8.1.0)
Перечисления - это ограничивающий слой над классами и константами классов, предназначенный для предоставления способа определения закрытого набора возможных значений для типа.
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
function do_stuff(Suit $s)
{
// ...
}
do_stuff(Suit::Spades);
?>
Полное описание смотрите в главе о перечислениях.
Если перечисление (enum) преобразуется в объект (object),
оно не изменяется. Если перечисление (enum) преобразуется в массив (array),
то создаётся массив с одним ключом name
(для простых перечислений)
или массив с двумя ключами name
и value
(для типизированных перечислений).
Все остальные приведения типов приведут к ошибке.