bug37212.phpt 804 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. --TEST--
  2. Bug #37212 (Access to protected property of common base class)
  3. --FILE--
  4. <?php
  5. class A
  6. {
  7. protected $value;
  8. public function __construct($val)
  9. {
  10. $this->value = $val;
  11. }
  12. protected function getValue()
  13. {
  14. return $this->value;
  15. }
  16. }
  17. class B extends A
  18. {
  19. public function copyValue($obj)
  20. {
  21. $this->value = $obj->getValue();
  22. $this->value = $obj->value; // value defined in common base class
  23. }
  24. }
  25. class C extends A {}
  26. $B = new B("B");
  27. var_dump($B);
  28. $C = new C("C");
  29. var_dump($C);
  30. $B->copyValue($C);
  31. var_dump($B);
  32. ?>
  33. ===DONE===
  34. --EXPECTF--
  35. object(B)#%d (1) {
  36. ["value":protected]=>
  37. string(1) "B"
  38. }
  39. object(C)#%d (1) {
  40. ["value":protected]=>
  41. string(1) "C"
  42. }
  43. object(B)#%d (1) {
  44. ["value":protected]=>
  45. string(1) "C"
  46. }
  47. ===DONE===