private_003.phpt 689 B

123456789101112131415161718192021222324252627282930313233343536
  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. ini_set("error_reporting",2039);
  8. class pass {
  9. private static function show() {
  10. echo "Call show()\n";
  11. }
  12. protected static function good() {
  13. pass::show();
  14. }
  15. }
  16. class fail extends pass {
  17. static function ok() {
  18. pass::good();
  19. }
  20. static function not_ok() {
  21. pass::show();
  22. }
  23. }
  24. fail::ok();
  25. fail::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