bug45186.phpt 961 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. --TEST--
  2. Bug #45186 (__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. static public function __callstatic($a, $b) {
  11. print "__callstatic:\n";
  12. var_dump($a);
  13. }
  14. public function test() {
  15. self::ABC();
  16. bar::ABC();
  17. call_user_func(array('BAR', 'xyz'));
  18. call_user_func('BAR::www');
  19. call_user_func(array('self', 'y'));
  20. call_user_func('self::y');
  21. }
  22. static function x() {
  23. print "ok\n";
  24. }
  25. }
  26. $x = new bar;
  27. $x->test();
  28. call_user_func(array('BAR','x'));
  29. call_user_func('BAR::www');
  30. call_user_func('self::y');
  31. ?>
  32. --EXPECTF--
  33. __call:
  34. string(3) "ABC"
  35. __call:
  36. string(3) "ABC"
  37. __call:
  38. string(3) "xyz"
  39. __call:
  40. string(3) "www"
  41. __call:
  42. string(1) "y"
  43. __call:
  44. string(1) "y"
  45. ok
  46. __callstatic:
  47. string(3) "www"
  48. Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access self:: when no class scope is active in %sbug45186.php on line 31