summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-08-01 20:24:14 +0800
committerXinchen Hui <laruence@php.net>2012-08-01 20:24:14 +0800
commit2026e9040ff3093e53083baefc1299b1efa25c4c (patch)
treea70befd5c4bacd2128729147c8378d169f2a8d87
parentff729aabf7a3dd7bd76b50dcaf7051e414f3714c (diff)
parent10642aa9e4f1eb694a8f7b514cc234cb24545744 (diff)
downloadphp-git-2026e9040ff3093e53083baefc1299b1efa25c4c.tar.gz
Merge branch 'PHP-5.3' into PHP-5.4
-rw-r--r--ext/reflection/php_reflection.c4
-rw-r--r--ext/reflection/tests/bug62715.phpt17
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)