summaryrefslogtreecommitdiff
path: root/Zend/tests/closure_016.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/closure_016.phpt')
-rw-r--r--Zend/tests/closure_016.phpt51
1 files changed, 51 insertions, 0 deletions
diff --git a/Zend/tests/closure_016.phpt b/Zend/tests/closure_016.phpt
new file mode 100644
index 0000000..ae00365
--- /dev/null
+++ b/Zend/tests/closure_016.phpt
@@ -0,0 +1,51 @@
+--TEST--
+Closure 016: closures and is_callable()
+--FILE--
+<?php
+class Foo {
+ function __invoke() {
+ echo "Hello World!\n";
+ }
+}
+
+function foo() {
+ return function() {
+ echo "Hello World!\n";
+ };
+}
+$test = new Foo;
+var_dump(is_callable($test, true, $name));
+echo $name."\n";
+var_dump(is_callable($test, false, $name));
+echo $name."\n";
+var_dump(is_callable(array($test,"__invoke"), true, $name));
+echo $name."\n";
+var_dump(is_callable(array($test,"__invoke"), false, $name));
+echo $name."\n";
+$test = foo();
+var_dump(is_callable($test, true, $name));
+echo $name."\n";
+var_dump(is_callable($test, false, $name));
+echo $name."\n";
+var_dump(is_callable(array($test,"__invoke"), true, $name));
+echo $name."\n";
+var_dump(is_callable(array($test,"__invoke"), false, $name));
+echo $name."\n";
+?>
+--EXPECT--
+bool(true)
+Foo::__invoke
+bool(true)
+Foo::__invoke
+bool(true)
+Foo::__invoke
+bool(true)
+Foo::__invoke
+bool(true)
+Closure::__invoke
+bool(true)
+Closure::__invoke
+bool(true)
+Closure::__invoke
+bool(true)
+Closure::__invoke