Commit: 170ee90bf962d288bdcf6cf0c8c4a2a30c5c1ba2 Author: Xinchen Hui <larue...@php.net> Thu, 2 Aug 2012 22:28:04 +0800 Parents: 3b5defd3b09bf827239087126261ce9abdc13d09 Branches: PHP-5.4
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=170ee90bf962d288bdcf6cf0c8c4a2a30c5c1ba2 Log: Fixed bug that can not get default value of parameter if it's not `optional` Changed paths: M ext/reflection/php_reflection.c M ext/reflection/tests/ReflectionParameter_DefaultValueConstant_error.phpt M ext/reflection/tests/bug62715.phpt Diff: diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 7e80dea..6656f58 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -1477,11 +1477,6 @@ static parameter_reference *_reflection_param_get_default_param(INTERNAL_FUNCTIO return NULL; } - if (param->offset < param->required) { - zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Parameter is not optional"); - return NULL; - } - return param; } /* }}} */ @@ -1497,7 +1492,7 @@ static zend_op *_reflection_param_get_default_precv(INTERNAL_FUNCTION_PARAMETERS precv = _get_recv_op((zend_op_array*)param->fptr, param->offset); if (!precv || precv->opcode != ZEND_RECV_INIT || precv->op2_type == IS_UNUSED) { - zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Internal error"); + zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Internal error: Failed to retrieve the default value"); return NULL; } diff --git a/ext/reflection/tests/ReflectionParameter_DefaultValueConstant_error.phpt b/ext/reflection/tests/ReflectionParameter_DefaultValueConstant_error.phpt index 984b06e..a2c2d24 100644 --- a/ext/reflection/tests/ReflectionParameter_DefaultValueConstant_error.phpt +++ b/ext/reflection/tests/ReflectionParameter_DefaultValueConstant_error.phpt @@ -18,8 +18,6 @@ foreach($reflect->getParameters() as $param) { } } ?> -==DONE== --EXPECT-- -Parameter is not optional +Internal error: Failed to retrieve the default value CONST_TEST_1 -==DONE== diff --git a/ext/reflection/tests/bug62715.phpt b/ext/reflection/tests/bug62715.phpt index 721d484..feb67f6 100644 --- a/ext/reflection/tests/bug62715.phpt +++ b/ext/reflection/tests/bug62715.phpt @@ -10,8 +10,15 @@ foreach ($r->getParameters() as $p) { var_dump($p->isDefaultValueAvailable()); } +foreach ($r->getParameters() as $p) { + if ($p->isDefaultValueAvailable()) { + var_dump($p->getDefaultValue()); + } +} ?> --EXPECT-- bool(true) bool(true) bool(false) +NULL +int(0) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php