private_003b.phpt 678 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. ZE2 A private method cannot be called in a derived class
  3. --FILE--
  4. <?php
  5. class pass {
  6. private function show() {
  7. echo "Call show()\n";
  8. }
  9. protected function good() {
  10. $this->show();
  11. }
  12. }
  13. class fail extends pass {
  14. public function ok() {
  15. $this->good();
  16. }
  17. public function not_ok() {
  18. $this->show();
  19. }
  20. }
  21. $t = new fail();
  22. $t->ok();
  23. $t->not_ok(); // calling a private function
  24. echo "Done\n"; // shouldn't be displayed
  25. ?>
  26. --EXPECTF--
  27. Call show()
  28. Fatal error: Uncaught Error: Call to private method pass::show() from scope fail in %s:%d
  29. Stack trace:
  30. #0 %s(%d): fail->not_ok()
  31. #1 {main}
  32. thrown in %s on line %d