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. Por exemplo:
<?php
enum Tamanho
{
case Pequeno;
case Medio;
case Grande;
public static function deComprimento(int $cm): self
{
return match(true) {
$cm < 50 => self::Pequeno,
$cm < 100 => self::Medio,
default => self::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.