private_003b.phpt 659 B

12345678910111213141516171819202122232425262728293031323334353637
  1. --TEST--
  2. ZE2 A private method cannot be called in a derived class
  3. --SKIPIF--
  4. <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
  5. --FILE--
  6. <?php
  7. class pass {
  8. private function show() {
  9. echo "Call show()\n";
  10. }
  11. protected function good() {
  12. $this->show();
  13. }
  14. }
  15. class fail extends pass {
  16. public function ok() {
  17. $this->good();
  18. }
  19. public function not_ok() {
  20. $this->show();
  21. }
  22. }
  23. $t = new fail();
  24. $t->ok();
  25. $t->not_ok(); // calling a private function
  26. echo "Done\n"; // shouldn't be displayed
  27. ?>
  28. --EXPECTF--
  29. Call show()
  30. Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d