加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

我们可以调用匿名函数而不将其存储在PHP中的变量中吗?

发布时间:2020-12-13 22:53:31 所属栏目:PHP教程 来源:网络整理
导读:在 Javascript中,在一个语句中调用另一个函数返回的函数很容易.考虑例如: function createOperation(operator){ return Function("a","b","return a " + operator + "b;")}var result = createOperation("*")(2,3); 在这里,我们调用一个函数来创建另一个函
在 Javascript中,在一个语句中调用另一个函数返回的函数很容易.考虑例如:

function createOperation(operator)
{
    return Function("a","b","return a " + operator + "b;")
}

var result = createOperation("*")(2,3);

在这里,我们调用一个函数来创建另一个函数,该函数将两个值相乘,然后用两个参数调用这个新函数.

如果我尝试在PHP中复制类似的代码片段,我最终会使用两个语句和一个额外的变量:

function createOperation(operator)
{
    return create_function('$a,$b','return $a '.$operator.' $b;');
}

$temp_var = createOperation("+");
$result = $temp_var(2,3);

简短的,类似Javascript的表单不起作用:

$result = createOperation("+")(2,3);

在编写调用链(伪代码)时,这尤其繁琐:

foo(arg1)(arg2,arg3)()(...)

哪个会成为:

$temp1 = foo($arg1);
$temp2 = $temp1($arg2,$arg3);
$temp3 = $temp2();
...

所以我的问题是:在PHP中是否有一种方法可以调用另一个函数返回的函数而不使用临时变量,或者至少在一个相同的语句中?

解决方法

正如php repo中所见,@ NikiC正在积极致力于实现 his RFC,()()语法已经在trunk中:

https://github.com/php/php-src/commit/64e4c9eff16b082f87e94fc02ec620b85124197d

我不知道发布地图是什么样的,希望我们很快就能在php中获得不错的语法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读