From: Johannes Schlüter Date: Fri, 24 Feb 2006 23:08:36 +0000 (+0000) Subject: - Fix #29986 (Class constants won't work with predefined constants when X-Git-Tag: RELEASE_1_2~89 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cea8dd887b3a207f0cd87a9c25df4a9f539ca227;p=php - Fix #29986 (Class constants won't work with predefined constants when using ReflectionClass) --- diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 45946393b7..f11eb926c3 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -347,6 +347,7 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in /* Constants */ if (&ce->constants_table) { + zend_hash_apply_with_argument(&ce->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC); string_printf(str, "\n"); count = zend_hash_num_elements(&ce->constants_table); string_printf(str, "%s - Constants [%d] {\n", indent, count); diff --git a/ext/reflection/tests/bug29986.phpt b/ext/reflection/tests/bug29986.phpt new file mode 100644 index 0000000000..cf1fd7f6d8 --- /dev/null +++ b/ext/reflection/tests/bug29986.phpt @@ -0,0 +1,66 @@ +--TEST-- +Reflection::export +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Class [ class just_constants ] { + @@ %s + + - Constants [5] { + Constant [ boolean BOOLEAN_CONSTANT ] { } + Constant [ null NULL_CONSTANT ] { } + Constant [ native string STRING_CONSTANT ] { } + Constant [ integer INTEGER_CONSTANT ] { } + Constant [ double FLOAT_CONSTANT ] { } + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [0] { + } + + - Methods [0] { + } +} +--UEXPECTF-- +Class [ class just_constants ] { + @@ %s + + - Constants [5] { + Constant [ boolean BOOLEAN_CONSTANT ] { } + Constant [ null NULL_CONSTANT ] { } + Constant [ Unicode string STRING_CONSTANT ] { } + Constant [ integer INTEGER_CONSTANT ] { } + Constant [ double FLOAT_CONSTANT ] { } + } + + - Static properties [0] { + } + + - Static methods [0] { + } + + - Properties [0] { + } + + - Methods [0] { + } +} +