bug45186_2.phpt 971 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Bug #45186.2 (__call depends on __callstatic in class scope)
  3. --FILE--
  4. <?php
  5. class bar {
  6. public function __call($a, $b) {
  7. print "__call:\n";
  8. var_dump($a);
  9. }
  10. public function test() {
  11. self::ABC();
  12. bar::ABC();
  13. call_user_func(array('BAR', 'xyz'));
  14. call_user_func('BAR::www');
  15. call_user_func(array('self', 'y'));
  16. call_user_func('self::y');
  17. }
  18. static function x() {
  19. print "ok\n";
  20. }
  21. }
  22. $x = new bar;
  23. $x->test();
  24. call_user_func(array('BAR','x'));
  25. call_user_func('BAR::www');
  26. call_user_func('self::y');
  27. ?>
  28. --EXPECTF--
  29. __call:
  30. string(3) "ABC"
  31. __call:
  32. string(3) "ABC"
  33. __call:
  34. string(3) "xyz"
  35. __call:
  36. string(3) "www"
  37. __call:
  38. string(1) "y"
  39. __call:
  40. string(1) "y"
  41. ok
  42. Warning: call_user_func() expects parameter 1 to be a valid callback, class 'bar' does not have a method 'www' in %s on line %d
  43. Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access self:: when no class scope is active in %sbug45186_2.php on line 27