【发布时间】:2020-03-23 18:35:44
【问题描述】:
PHP 7.4 引入了Arrow functions。它还引入了隐式的按值范围绑定,从而消除了对 use 关键字的需求。
现在,如果我们想通过常规匿名函数的引用来使用闭包范围之外的变量,我们可以这样做:
$num = 10;
call_user_func(function() use (&$num) {
$num += 5;
});
echo $num; // Output: 15
但是使用箭头函数似乎是不可能的
$num = 10;
call_user_func(fn() => $num += 5);
echo $num; // Output: 10
那么如何通过引用使用$num变量呢?
【问题讨论】:
-
我认为你必须将它作为参数传递,否则它在函数范围内不可见。虽然我不确定这将如何在实践中发挥作用,所以它可能是不可能的。
-
我想这是不可能的。
-
这能回答你的问题吗? Rewriting an anonymous function in php 7.4
标签: php pass-by-reference arrow-functions php-7.4