Méthodes statiques d'Enumération

Les énumérations peuvent également avoir des méthodes statiques. L'utilisation de méthodes statiques sur une énumération elle-même est principalement pour les constructeurs alternatifs. Par exemple :

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

var_dump(Size::fromLength(50));

Les méthodes statiques peuvent être publiques, privées ou protégées, bien que privées et protégées sont équivalentes car l'héritage n'est pas autorisé.