试图找出为什么php匿名函数只有在函数头中给出参数时才有效.
例如
$f = function(){
echo "hello world";
};
$f;
$f();
Run Code Online (Sandbox Code Playgroud)
不行.但
$f = function($argument){
echo $argument;
}
$f('hello world');
Run Code Online (Sandbox Code Playgroud)
工作得很好.
为什么它需要参数,是否有任何解决方法?
编辑
这必须是版本问题.我在5.3.18,我的第一个例子肯定不起作用.对于那些不相信的人,它会抛出:
Parse error: syntax error, unexpected T_FUNCTION in index.php(192) :
eval()'d code on line 1
Run Code Online (Sandbox Code Playgroud)
编辑
在看了DaveRandom的回答后,我又回到了不知道发生了什么.那就是如果它们是正确的,它在5.3.10中有效......
这是完全有效的语法和输出hello world:
$f = function(){
echo "hello world";
};
$f();
Run Code Online (Sandbox Code Playgroud)
该行$f;没有任何作用,相当于声明任何其他变量,然后写入新的变量名称和分号.
匿名函数不需要参数,有关它们的更多详细信息,请参阅手册.
您正在获得这些语法错误,因为您运行的是PHP版本<5.3.