bug29689.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. --TEST--
  2. Bug #29689 (default value of protected member overrides default value of private)
  3. --FILE--
  4. <?php
  5. class foo {
  6. private $foo = 'foo';
  7. private $foo2 = 'foo2';
  8. function printFoo()
  9. {
  10. echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
  11. }
  12. }
  13. class bar extends foo {
  14. protected $foo = 'bar';
  15. function printFoo()
  16. {
  17. parent::printFoo();
  18. echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
  19. }
  20. }
  21. class baz extends bar {
  22. protected $foo = 'baz';
  23. protected $foo2 = 'baz2';
  24. }
  25. class bar2 extends foo {
  26. function printFoo()
  27. {
  28. parent::printFoo();
  29. echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
  30. }
  31. }
  32. class baz2 extends bar2 {
  33. protected $foo = 'baz2';
  34. protected $foo2 = 'baz22';
  35. }
  36. $bar = new bar;
  37. $bar->printFoo();
  38. echo "---baz--\n";
  39. $baz = new baz();
  40. $baz->printFoo();
  41. echo "---baz2--\n";
  42. $baz = new baz2();
  43. $baz->printFoo();
  44. ?>
  45. --EXPECTF--
  46. foo: foo foo2
  47. bar: bar
  48. Warning: Undefined property: bar::$foo2 in %s on line %d
  49. ---baz--
  50. foo: foo foo2
  51. bar: baz baz2
  52. ---baz2--
  53. foo: foo foo2
  54. bar2: baz2 baz22