summaryrefslogtreecommitdiff
path: root/Zend/tests/bug37212.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug37212.phpt')
-rw-r--r--Zend/tests/bug37212.phpt55
1 files changed, 55 insertions, 0 deletions
diff --git a/Zend/tests/bug37212.phpt b/Zend/tests/bug37212.phpt
new file mode 100644
index 0000000..212ef23
--- /dev/null
+++ b/Zend/tests/bug37212.phpt
@@ -0,0 +1,55 @@
+--TEST--
+Bug #37212 (Access to protected property of common base class)
+--FILE--
+<?php
+
+class A
+{
+ protected $value;
+
+ public function __construct($val)
+ {
+ $this->value = $val;
+ }
+
+ protected function getValue()
+ {
+ return $this->value;
+ }
+}
+
+class B extends A
+{
+ public function copyValue($obj)
+ {
+ $this->value = $obj->getValue();
+ $this->value = $obj->value; // value defined in common base class
+ }
+}
+class C extends A {}
+
+$B = new B("B");
+var_dump($B);
+$C = new C("C");
+var_dump($C);
+
+$B->copyValue($C);
+
+var_dump($B);
+
+?>
+===DONE===
+--EXPECTF--
+object(B)#%d (1) {
+ ["value":protected]=>
+ string(1) "B"
+}
+object(C)#%d (1) {
+ ["value":protected]=>
+ string(1) "C"
+}
+object(B)#%d (1) {
+ ["value":protected]=>
+ string(1) "C"
+}
+===DONE===