private_redeclare.phpt 703 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. ZE2 A derived class does not know anything about inherited private methods
  3. --FILE--
  4. <?php
  5. class base {
  6. private function show() {
  7. echo "base\n";
  8. }
  9. function test() {
  10. $this->show();
  11. }
  12. }
  13. $t = new base();
  14. $t->test();
  15. class derived extends base {
  16. function show() {
  17. echo "derived\n";
  18. }
  19. function test() {
  20. echo "test\n";
  21. $this->show();
  22. parent::test();
  23. parent::show();
  24. }
  25. }
  26. $t = new derived();
  27. $t->test();
  28. ?>
  29. --EXPECTF--
  30. base
  31. test
  32. derived
  33. base
  34. Fatal error: Uncaught Error: Call to private method base::show() from scope derived in %s:%d
  35. Stack trace:
  36. #0 %s(%d): derived->test()
  37. #1 {main}
  38. thrown in %s on line %d