Aufzählungen und statische Methoden

Enums können auch statische Methoden haben. In der Enum selbst werden statische Methoden hauptsächlich für alternative Konstruktoren verwendet, z. B.:

<?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));

Statische Methoden können public, private oder protected sein, wobei private und protected praktisch gleichwertig sind, da Vererbung nicht erlaubt ist.