bug27504.phpt 720 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. Bug #27504 (call_user_func_array allows calling of private/protected methods)
  3. --FILE--
  4. <?php
  5. class foo {
  6. function __construct () {
  7. $this->bar('1');
  8. }
  9. private function bar ( $param ) {
  10. echo 'Called function foo:bar('.$param.')'."\n";
  11. }
  12. }
  13. $foo = new foo();
  14. try {
  15. call_user_func_array( array( $foo , 'bar' ) , array( '2' ) );
  16. } catch (TypeError $e) {
  17. echo $e->getMessage(), "\n";
  18. }
  19. try {
  20. $foo->bar('3');
  21. } catch (Error $e) {
  22. echo $e->getMessage(), "\n";
  23. }
  24. ?>
  25. --EXPECT--
  26. Called function foo:bar(1)
  27. call_user_func_array(): Argument #1 ($callback) must be a valid callback, cannot access private method foo::bar()
  28. Call to private method foo::bar() from global scope