(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
(для типизированных перечислений). Все остальные приведения типов приведут к ошибке.