열거형

열거형 (Enumerations)

enum은 클래스와 클래스 상수 위에 제한 계층을 얹어서, 타입이 가질 수 있는 가능한 값의 집합을 닫힌(closed) 상태로 정의할 수 있게 해주는 타입이에요. 이 페이지에서는 열거형의 기본 모습과 캐스팅 동작을 다뤄요.

출처: PHP: Enumerations - Manual

본문

(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 열거형의 경우 namevalue 키가 모두 있는 배열이 만들어져요. 그 외의 모든 캐스트 타입은 오류를 일으켜요.

더 알아보기