indirectFcall.phpt 903 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. --TEST--
  2. Indirect function calls
  3. --FILE--
  4. <?php
  5. function id($x = 'id') { return $x; }
  6. var_dump(0);
  7. id('var_dump')(1);
  8. id('id')('var_dump')(2);
  9. id('id')('id')('var_dump')(3);
  10. id()()('var_dump')(4);
  11. id(['udef', 'id'])[1]()('var_dump')(5);
  12. (id((object) ['a' => 'id', 'b' => 'udef'])->a)()()()()('var_dump')(6);
  13. $id = function($x) { return $x; };
  14. $id($id)('var_dump')(7);
  15. (function($x) { return $x; })('id')('var_dump')(8);
  16. ($f = function($x = null) use (&$f) {
  17. return $x ?: $f;
  18. })()()()('var_dump')(9);
  19. class Test {
  20. public static function id($x = [__CLASS__, 'id']) { return $x; }
  21. }
  22. $obj = new Test;
  23. [$obj, 'id']()('id')($id)('var_dump')(10);
  24. ['Test', 'id']()()('var_dump')(11);
  25. 'id'()('id')('var_dump')(12);
  26. ('i' . 'd')()('var_dump')(13);
  27. '\id'('var_dump')(14);
  28. ?>
  29. --EXPECT--
  30. int(0)
  31. int(1)
  32. int(2)
  33. int(3)
  34. int(4)
  35. int(5)
  36. int(6)
  37. int(7)
  38. int(8)
  39. int(9)
  40. int(10)
  41. int(11)
  42. int(12)
  43. int(13)
  44. int(14)