Métodos estáticos de enumeraciónes

Las enumeraciónes también pueden tener métodos estáticos. El uso de métodos estáticos en la enumeración en sí es principalmente para constructores alternativos. Por ejemplo:

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

Los métodos estáticos pueden ser públicos, privados o protegidos, aunque en la práctica privado y protegido son equivalentes ya que no se permite la herencia.