<?php
class bar {
function baz() {}
static function foo() {}
}
function foo(callable $bar) {
var_dump($bar);
}
$closure = function () {};
foo("strpos");
foo("foo");
foo(array("bar", "baz"));
foo(array("bar", "foo"));
foo($closure);
string(6) "strpos"
string(3) "foo"
Fatal error: Uncaught TypeError: foo(): Argument #1 ($bar) must be of type callable, array given, called in /in/8jh7W on line 14 and defined in /in/8jh7W:7
Stack trace:
#0 /in/8jh7W(14): foo(Array)
#1 {main}
thrown in /in/8jh7W on line 7
Process exited with code 255.
string(6) "strpos"
string(3) "foo"
Strict Standards: Non-static method bar::baz() should not be called statically in /in/8jh7W on line 7
array(2) {
[0]=>
string(3) "bar"
[1]=>
string(3) "baz"
}
array(2) {
[0]=>
string(3) "bar"
[1]=>
string(3) "foo"
}
object(Closure)#1 (0) {
}
Output for 5.3.0 - 5.3.29
Catchable fatal error: Argument 1 passed to foo() must be an instance of callable, string given, called in /in/8jh7W on line 12 and defined in /in/8jh7W on line 7
Process exited with code 255.
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Parse error: syntax error, unexpected T_FUNCTION in /in/8jh7W on line 10
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_FUNCTION in /in/8jh7W on line 10
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/8jh7W on line 5
Process exited with code 255.
Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/8jh7W on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/8jh7W on line 5
Process exited with code 255.