bug22725.phpt 762 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. Bug #22725 (A derived class can call a parent's protected method that calls a private method)
  3. --SKIPIF--
  4. <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
  5. --FILE--
  6. <?php
  7. class Foo {
  8. private function aPrivateMethod() {
  9. echo "Foo::aPrivateMethod() called.\n";
  10. }
  11. protected function aProtectedMethod() {
  12. echo "Foo::aProtectedMethod() called.\n";
  13. $this->aPrivateMethod();
  14. }
  15. }
  16. class Bar extends Foo {
  17. public function aPublicMethod() {
  18. echo "Bar::aPublicMethod() called.\n";
  19. $this->aProtectedMethod();
  20. }
  21. }
  22. $o = new Bar;
  23. $o->aPublicMethod();
  24. ?>
  25. --EXPECT--
  26. Bar::aPublicMethod() called.
  27. Foo::aProtectedMethod() called.
  28. Foo::aPrivateMethod() called.