枚舉靜態(tài)方法

枚舉也能有靜態(tài)方法。 在枚舉中靜態(tài)方法主要用于取代構(gòu)造器,如:

<?php
enum Size
{
    case 
Small;
    case 
Medium;
    case 
Large;

    public static function 
fromLength(int $cm): static
    {
        return 
match(true) {
            
$cm 50 => static::Small,
            
$cm 100 => static::Medium,
            default => static::
Large,
        };
    }
}
?>

僅管 enum 可以包括 public、private、protected 的靜態(tài)方法, 但由于它不支持繼承,因此在實(shí)踐中 private 和 protected 效果是相同的。