Métodos estáticos de enumerações

Enumerações também podem ter métodos estáticos. O uso para métodos estáticos na própria enumeração é primariamente para construtores alternativos. P. ex.:

<?php

enum Tamanho
{
    case Pequeno;
    case Medio;
    case Grande;

    public static function deComprimento(int $cm): static
    {
        return match(true) {
            $cm < 50 => static::Pequeno,
            $cm < 100 => static::Medio,
            default => static::Grande,
        };
    }
}
?>

Métodos estáticos podem ser públicos, privados, ou protegidos apesar dos privados e protegidos são equivalentes na prática, pois herança não é permitida.