값 목록
값 목록 (Value listing)
cases() 메서드를 통해 enum의 모든 case 목록을 얻는 방법을 다룹니다. 순수 enum과 후원 enum 모두가 구현하는 내부 UnitEnum 인터페이스에 대해 살펴봅니다.
출처: Value listing
본문
순수 enum(Pure Enum)과 후원 enum(Backed Enum) 모두 UnitEnum이라는 내부 인터페이스를 구현합니다. UnitEnum에는 cases()라는 정적 메서드가 포함되어 있습니다. cases()는 선언 순서대로 정의된 모든 case의 packed 배열을 반환합니다.
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
var_dump(Suit::cases());
enum SuitBacked: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}
var_dump(SuitBacked::cases());
enum에 cases() 메서드를 직접 정의하면 치명적 오류(fatal error)로 이어집니다.