当一个方法返回一个函数时,它可以像这样调用:
class AClass {
public function getFnc() {
$f = function() {
echo "hello from a function";
};
return $f;
}
}
在呼叫端,我们可以做:
$c = new AClass();
$f = $c->getFnc();
$f();
输出为hello from a function
。
编写内联调用不会编译:
$c->getFnc()();
这怎么可能是内联(ish)写的,可能有一些类型转换?我正在寻找一个优雅的方式从来电者的Angular 来看。
在数学中,东西是在原地评估的:
(3 + 2)(5 + 1)
(5)(6)
30
而不是引入不必要的变量f1:
f1 = (3 + 2)
f1(5 + 1)
...
3条答案
按热度按时间hyrbngr71#
您的函数可以被视为回调函数,因此
call_user_func()
将用于调用返回的函数。你可以像这样调用函数...http://be2.php.net/function.call-user-func
nukf8bse2#
看看这个并确定你的PHP版本:Anonymous functions
eanckbw93#
php 4.4失败
php版本5.6支持
$f()
,但在$f()()
时失败php版本高于5.6都可以,所以今天,可以说这些代码段工作正常。