bug38772.phpt 646 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Bug #38772 (inconsistent overriding of methods in different visibility contexts)
  3. --FILE--
  4. <?php
  5. class A {
  6. public function __construct() {
  7. $this -> foo();
  8. }
  9. private function foo() {
  10. echo __METHOD__ . "\r\n";
  11. }
  12. }
  13. class B extends A {
  14. public function foo() {
  15. echo __METHOD__ . "\r\n";
  16. }
  17. }
  18. class C extends A {
  19. protected function foo() {
  20. echo __METHOD__ . "\r\n";
  21. }
  22. }
  23. class D extends A {
  24. private function foo() {
  25. echo __METHOD__ . "\r\n";
  26. }
  27. }
  28. $a = new A();
  29. $b = new B();
  30. $c = new C();
  31. $d = new D();
  32. ?>
  33. --EXPECT--
  34. A::foo
  35. A::foo
  36. A::foo
  37. A::foo