summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--ext/reflection/php_reflection.c1
-rw-r--r--ext/reflection/tests/bug70982.phpt22
3 files changed, 27 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index bd6f283b1f..635ba29b73 100644
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,10 @@ PHP NEWS
- Phpdbg:
. Fixed stderr being written to stdout. (Bob)
+- Reflection:
+ . Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with
+ 5.6). (Laruence)
+
- Standard:
. Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number
of parameters). (Laruence)
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index faced0572c..72df8b5901 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -3858,6 +3858,7 @@ ZEND_METHOD(reflection_class, setStaticPropertyValue)
"Class %s does not have a property named %s", ZSTR_VAL(ce->name), ZSTR_VAL(name));
return;
}
+ ZVAL_DEREF(variable_ptr);
zval_ptr_dtor(variable_ptr);
ZVAL_COPY(variable_ptr, value);
}
diff --git a/ext/reflection/tests/bug70982.phpt b/ext/reflection/tests/bug70982.phpt
new file mode 100644
index 0000000000..3d6aadde4d
--- /dev/null
+++ b/ext/reflection/tests/bug70982.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #70982 (setStaticPropertyValue behaviors inconsistently with 5.6)
+--FILE--
+<?php
+class Foo {
+ static $abc;
+ function __construct()
+ {
+ var_dump(static::$abc);
+ }
+}
+
+class Bar extends Foo {
+
+}
+
+$rf = new ReflectionClass('Bar');
+$rf->setStaticPropertyValue('abc', 'hi');
+$foo = $rf->newInstance();
+?>
+--EXPECT--
+string(2) "hi"