php8之enum配合match的使用:
// 定义了如下enum类,用于获取 suffix
enum RegistrationSuffix: string
{
case Early = 'early';
case Late = 'late';
case Regular = 'regular';
public static function getSuffix(?string $suffix): self
{
return match ($suffix) {//使用 match 表达式(PHP 8.0+)来实现选择逻辑
'Early bird' => self::Early,
'Late' => self::Late,
default => self::Regular,
};
}
}
// 使用
$suffix = RegistrationSuffix::getSuffix('Early bird');
var_dump($suffix); // enum(RegistrationSuffix::Early)
$suffixValue = RegistrationSuffix::getSuffix('Early bird')->value;
echo $suffixValue; // 输出 "early"
