열거형 정적 메서드

열거형 정적 메서드 (Enumeration static methods)

열거형에 정적 메서드를 추가하는 방법을 다룹니다. 주로 대체 생성자(alternative constructor) 용도로 사용되는 정적 메서드의 예시를 살펴봅니다.

출처: Enumeration static methods

본문

Enum은 정적 메서드도 가질 수 있습니다. enum 자체의 정적 메서드 용도는 주로 대체 생성자(alternative constructor)입니다. 예를 들어:

<?php

enum Size
{
    case Small;
    case Medium;
    case Large;

    public static function fromLength(int $cm): self
    {
        return match (true) {
            $cm < 50 => self::Small,
            $cm < 100 => self::Medium,
            default => self::Large,
        };
    }
}

var_dump(Size::fromLength(50));

정적 메서드는 public, private, protected가 될 수 있지만, 실질적으로는 상속이 허용되지 않으므로 privateprotected는 동등합니다.

더 알아보기