bug37212.phpt 782 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. --EXPECTF--
  34. object(B)#%d (1) {
  35. ["value":protected]=>
  36. string(1) "B"
  37. }
  38. object(C)#%d (1) {
  39. ["value":protected]=>
  40. string(1) "C"
  41. }
  42. object(B)#%d (1) {
  43. ["value":protected]=>
  44. string(1) "C"
  45. }