如何检查是否是枚举类型?

Ric*_* RM 23 php enums types php-8.1

如何判断变量是否为枚举类型?

我已经在 Ubuntu 20.04 上安装了 PHP 8.1。我正在测试新的“枚举”类型。

这样的事情可能吗?

is_enum($var)
gettype($var) === 'enum'
Run Code Online (Sandbox Code Playgroud)

Ric*_* RM 49

有人告诉我解决方法:

if ($var instanceof \UnitEnum) {
   echo 'is enum';
}
Run Code Online (Sandbox Code Playgroud)

  • 或者根据您的需要,`instanceof BackedEnum`。 (9认同)
  • https://www.php.net/manual/en/class.unitenum (2认同)

小智 18

使用enum_exists来检查是否是枚举。

if (enum_exists(Item::class)) {
    $myType = Item::Manufactured;
}
Run Code Online (Sandbox Code Playgroud)

  • 它也适用于 `enum_exists($var::class)` (4认同)