값 목록

값 목록 (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)로 이어집니다.

더 알아보기

  • case에 스칼라 값을 연결하는 방법은 후원 열거형을 참고하세요.
  • enum case를 순회하거나 비교하는 더 많은 예시는 예제 페이지를 보세요.