diff options
author | Xinchen Hui <laruence@php.net> | 2012-08-01 20:24:14 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-08-01 20:24:14 +0800 |
commit | 2026e9040ff3093e53083baefc1299b1efa25c4c (patch) | |
tree | a70befd5c4bacd2128729147c8378d169f2a8d87 | |
parent | ff729aabf7a3dd7bd76b50dcaf7051e414f3714c (diff) | |
parent | 10642aa9e4f1eb694a8f7b514cc234cb24545744 (diff) | |
download | php-git-2026e9040ff3093e53083baefc1299b1efa25c4c.tar.gz |
Merge branch 'PHP-5.3' into PHP-5.4
-rw-r--r-- | ext/reflection/php_reflection.c | 4 | ||||
-rw-r--r-- | ext/reflection/tests/bug62715.phpt | 17 |
2 files changed, 18 insertions, 3 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index bcdcdaeea3..7e80deaac6 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2568,9 +2568,7 @@ ZEND_METHOD(reflection_parameter, isDefaultValueAvailable) { RETURN_FALSE; } - if (param->offset < param->required) { - RETURN_FALSE; - } + precv = _get_recv_op((zend_op_array*)param->fptr, param->offset); if (!precv || precv->opcode != ZEND_RECV_INIT || precv->op2_type == IS_UNUSED) { RETURN_FALSE; diff --git a/ext/reflection/tests/bug62715.phpt b/ext/reflection/tests/bug62715.phpt new file mode 100644 index 0000000000..721d484c71 --- /dev/null +++ b/ext/reflection/tests/bug62715.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result) +--FILE-- +<?php + +function test(PDO $a = null, $b = 0, array $c) {} +$r = new ReflectionFunction('test'); + +foreach ($r->getParameters() as $p) { + var_dump($p->isDefaultValueAvailable()); +} + +?> +--EXPECT-- +bool(true) +bool(true) +bool(false) |