diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 64cdc053f76..a2832358d6b 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -4751,7 +4751,7 @@ ZEND_METHOD(ReflectionClass, isInstantiable) RETURN_THROWS(); } GET_REFLECTION_OBJECT_PTR(ce); - if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS)) { + if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS | ZEND_ACC_ENUM)) { RETURN_FALSE; } @@ -4776,7 +4776,7 @@ ZEND_METHOD(ReflectionClass, isCloneable) RETURN_THROWS(); } GET_REFLECTION_OBJECT_PTR(ce); - if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS)) { + if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS | ZEND_ACC_ENUM)) { RETURN_FALSE; } if (!Z_ISUNDEF(intern->obj)) { diff --git a/ext/reflection/tests/bug81681.phpt b/ext/reflection/tests/bug81681.phpt new file mode 100644 index 00000000000..6b1c2278163 --- /dev/null +++ b/ext/reflection/tests/bug81681.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #81681 (ReflectionEnum throwing exceptions) +--FILE-- +isInstantiable()); +var_dump($reflectionEnum->isCloneable()); +?> +--EXPECT-- +bool(false) +bool(false)