ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->constants_table, key, c) {
_class_const_string(str, ZSTR_VAL(key), c, ZSTR_VAL(sub_indent));
if (UNEXPECTED(EG(exception))) {
+ zend_string_release(sub_indent);
return;
}
} ZEND_HASH_FOREACH_END();
--- /dev/null
+--TEST--
+Constant evaluation exception during ReflectionClass::__toString()
+--FILE--
+<?php
+
+class A {
+ const C = self::UNKNOWN;
+}
+try {
+ echo new ReflectionClass(A::class);
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Undefined class constant 'self::UNKNOWN'