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

PHP 8.1中如何判断变量是否为enum枚举类型?

PHP 8.1 枚举类型判断方法

核心结论

PHP 没有原生的is_enum函数,gettype($var) === 'enum'的判断逻辑也不成立——因为枚举实例本质是对象,gettype对枚举实例返回的值是object,不会返回enum字符串。

正确实现方式

1. 判断变量是否为任意枚举类型的实例

所有PHP枚举默认都实现了内置的\UnitEnum接口,你可以基于这个特性自己封装判断函数:

function is_enum(mixed $var): bool
{
    return $var instanceof \UnitEnum;
}

2. 判断变量是否为某一个指定枚举的实例

直接用instanceof关键字匹配目标枚举类即可,示例如下:

// 先定义一个测试枚举
enum StatusEnum
{
    case SUCCESS;
    case FAIL;
}

$val = StatusEnum::SUCCESS;
var_dump($val instanceof StatusEnum); // 输出 bool(true)

补充测试示例

enum TestEnum
{
    case A;
    case B;
}

$test = TestEnum::A;
var_dump(is_enum($test)); // bool(true)
var_dump(gettype($test)); // string(6) "object"

内容的提问来源于stack exchange,提问作者Richi RM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:21:00