열거형
열거형 (Enumerations)
enum은 클래스와 클래스 상수 위에 제한 계층을 얹어서, 타입이 가질 수 있는 가능한 값의 집합을 닫힌(closed) 상태로 정의할 수 있게 해주는 타입이에요. 이 페이지에서는 열거형의 기본 모습과 캐스팅 동작을 다뤄요.
본문
(PHP 8 >= 8.1.0)
기본 열거형 (Basic Enumerations)
열거형(Enumeration)은 클래스와 클래스 상수 위에 얹은 제한 계층으로, 타입이 가질 수 있는 가능한 값의 닫힌 집합을 정의하는 방법을 제공하기 위한 것이에요.
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
function do_stuff(Suit $s)
{
// ...
}
do_stuff(Suit::Spades);
?>
자세한 내용은 Enumerations 챕터를 참고해요.
캐스팅 (Casting)
열거형을 객체로 변환하면 수정되지 않아요. 열거형을 배열로 변환하면, Pure 열거형의 경우 name 키 하나만 있는 배열이, Backed 열거형의 경우 name과 value 키가 모두 있는 배열이 만들어져요. 그 외의 모든 캐스트 타입은 오류를 일으켜요.