summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/reflection/tests/bug49074.phpt35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/reflection/tests/bug49074.phpt b/ext/reflection/tests/bug49074.phpt
new file mode 100644
index 0000000000..670427594b
--- /dev/null
+++ b/ext/reflection/tests/bug49074.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Bug #49074 (private class static fields can be modified by using reflection)
+--FILE--
+<?php
+class Test {
+ private static $data1 = 1;
+ private static $data4 = 4;
+}
+
+class Test2 extends Test {
+ private static $data2 = 2;
+ public static $data3 = 3;
+}
+
+$r = new ReflectionClass('Test2');
+$m = $r->getStaticProperties();
+
+$m['data1'] = 100;
+$m['data2'] = 200;
+$m['data3'] = 300;
+$m['data4'] = 400;
+
+var_dump($r->getStaticProperties());
+?>
+--EXPECT--
+array(4) {
+ ["data2"]=>
+ int(2)
+ ["data3"]=>
+ int(3)
+ ["data1"]=>
+ int(1)
+ ["data4"]=>
+ int(4)
+}