You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中为枚举类添加DocType类型注解?

PHP枚举类的PHPDoc类型注解方案

针对你问的枚举类DocType问题,目前主流静态分析工具和IDE支持的PHPDoc语法里,确实存在专门用于枚举类的类型注解:

  • 通用枚举类类型:enum-class
  • 带回退值的枚举类类型:backed-enum-class

用这两个类型标注枚举类的字符串类型后,编辑器就能识别枚举特有的静态方法::from()、::tryFrom()和::cases()。

示例用法

通用枚举类

/**
 * @param enum-class<MyBaseEnum> $enumClass
 */
function processEnum(string $enumClass): void {
    // 编辑器会自动提示cases()、from()、tryFrom()等方法
    $allCases = $enumClass::cases();
    $enumInstance = $enumClass::tryFrom('test-value');
}

带回退值的枚举类

如果是限定为有回退类型(int/string)的枚举,可以用backed-enum-class,还能指定回退值类型和枚举类:

/**
 * @param backed-enum-class<string, MyStringBackedEnum> $enumClass
 */
function handleStringBackedEnum(string $enumClass): void {
    $validEnum = $enumClass::from('valid-string-value');
}

补充说明

  • enum-class和class-string的用法逻辑一致,泛型参数用于限制枚举的具体类型,帮助静态分析工具做更严格的检查
  • value-of<Enum>是用来标注枚举实例的类型,而enum-class是标注枚举类本身的字符串类型,二者用途不同

内容的提问来源于stack exchange,提问作者Joel Harkes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:22:46