我有一个使用这种语法的函数:
$variable = function() {
return function(){
//code
}
}
我无法用
执行该功能$variable()
有没有办法执行这个功能?
答案 0 :(得分:5)
我不知道它是什么......但这里的例子:
$a = function () {
return function () {
return 1;
};
};
$b = $a();
echo $b();
答案 1 :(得分:3)
存储在$variable
中的匿名函数(外部函数)返回另一个函数(内部函数)。
调用$variable()
表示外部函数返回内部函数。请参阅 - 返回,而不是执行。但是,由于您没有将外部函数的结果分配给任何变量,因此您的内部函数不会存储在任何位置。
所以,解决方案是:
$res = $variable(); // res stores an inner function
$res();
或(在PHP7中)
$variable()();
答案 2 :(得分:0)
函数正在返回,并且调用没有做任何事情,使用echo:
echo $variable();
为了清楚起见,我建议使用单独的功能。
$variable = doSomething();
function doeSomething(){
//code
}
答案 3 :(得分:0)
如果不支持新变量,您可以这样做:
call_user_func($variable());