20

How can I tell if a variable is of type enum?

I have installed PHP 8.1 on my Ubuntu 20.04. I'm testing the new "enum" types.

Is something like that possible?

is_enum($var)
gettype($var) === 'enum'
mickmackusa
  • 43,625
  • 12
  • 83
  • 136
Richi RM
  • 829
  • 3
  • 11

3 Answers3

44

Someone told me the solution:

if ($var instanceof \UnitEnum) {
   echo 'is enum';
}
Richi RM
  • 829
  • 3
  • 11
13

use enum_exists, for check if is a enum.

if (enum_exists(Item::class)) {
    $myType = Item::Manufactured;
}
0

You also can check it through reflection:

var_dump(
    (new ReflectionClass($object::class))
        ->isEnum()
);