열거형 정적 메서드

열거형에는 정적 메서드도 있을 수 있습니다. 열거 자체에서 정적 메서드를 사용하는 것은 주로 대체 생성자를 위한 것입니다. 예:

                  
<?php
enum Size
{
    case Small;
    case Medium;
    case Large;

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

정적 메서드는 public, private 또는 protected일 수 있지만 실제로는 private 및 protected가 상속이 허용되지 않는 것과 동일합니다.