Enumeration static methods

Enumerations may also have static methods. The use for static methods on the enumeration itself is primarily for alternative constructors. E.g.:

<?phpenum 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,        };    }}?>

Static methods may be public, private, or protected, although in practice private and protected are equivalent as inheritance is not allowed.