closure_016.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Closure 016: closures and is_callable()
  3. --FILE--
  4. <?php
  5. class Foo {
  6. function __invoke() {
  7. echo "Hello World!\n";
  8. }
  9. }
  10. function foo() {
  11. return function() {
  12. echo "Hello World!\n";
  13. };
  14. }
  15. $test = new Foo;
  16. var_dump(is_callable($test, true, $name));
  17. echo $name."\n";
  18. var_dump(is_callable($test, false, $name));
  19. echo $name."\n";
  20. var_dump(is_callable(array($test,"__invoke"), true, $name));
  21. echo $name."\n";
  22. var_dump(is_callable(array($test,"__invoke"), false, $name));
  23. echo $name."\n";
  24. $test = foo();
  25. var_dump(is_callable($test, true, $name));
  26. echo $name."\n";
  27. var_dump(is_callable($test, false, $name));
  28. echo $name."\n";
  29. var_dump(is_callable(array($test,"__invoke"), true, $name));
  30. echo $name."\n";
  31. var_dump(is_callable(array($test,"__invoke"), false, $name));
  32. echo $name."\n";
  33. ?>
  34. --EXPECT--
  35. bool(true)
  36. Foo::__invoke
  37. bool(true)
  38. Foo::__invoke
  39. bool(true)
  40. Foo::__invoke
  41. bool(true)
  42. Foo::__invoke
  43. bool(true)
  44. Closure::__invoke
  45. bool(true)
  46. Closure::__invoke
  47. bool(true)
  48. Closure::__invoke
  49. bool(true)
  50. Closure::__invoke