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