我有一个这样语法的函数:
$variable = function() {
return function(){
//code
}
}
我不能用
执行这个函数$variable()
是否有执行这个函数的方法
我不知道为什么…但是这里的例子:
$a = function () {
return function () {
return 1;
};
};
$b = $a();
echo $b();
您的匿名函数(外部函数),存储在$variable
中返回另一个函数(内部函数)。
调用$variable()
意味着外部函数返回内部函数。看到——返回,不是执行。但是,由于您不将外部函数的结果赋值给任何变量,因此内部函数不会存储在任何地方。
所以,解决方案是:
$res = $variable(); // res stores an inner function
$res();
Or (in PHP7)
$variable()();
函数正在返回并且调用者没有对它做任何操作,使用echo:
echo $variable();
为了清晰,我建议使用单独的函数。
$variable = doSomething();
function doeSomething(){
//code
}
无需传递给new变量,您可以这样做:
call_user_func($variable());