3v4l.org

run code in 300+ PHP versions simultaneously
<?php enum Foo: int { case Foo = 0; } enum Bar: string { case Bar = 'baz'; } enum Baz { case Baz; } function get_backing_type(string $enum_class): ?string { return (new ReflectionEnum($enum_class))->getBackingType()?->getName(); } function is_int_enum(string $enum_class): bool { return get_backing_type($enum_class) === 'int'; } function is_string_enum(string $enum_class): bool { return get_backing_type($enum_class) === 'string'; } var_dump(get_backing_type(Foo::class)); var_dump(get_backing_type(Bar::class)); var_dump(get_backing_type(Baz::class)); var_dump(is_int_enum(Foo::class)); var_dump(is_string_enum(Bar::class));

preferences:
26.86 ms | 404 KiB | 5 Q