Fat*_*ror 6 php pass-by-reference arrow-functions php-7.4
PHP 7.4 引入了箭头函数。它还引入了隐式按值范围绑定,从而消除了对use关键字的需要。
现在,如果我们想通过引用常规匿名函数来使用闭包范围之外的变量,我们将这样做:
$num = 10;
call_user_func(function() use (&$num) {
$num += 5;
});
echo $num; // Output: 15
Run Code Online (Sandbox Code Playgroud)
但是使用箭头函数似乎是不可能的
$num = 10;
call_user_func(fn() => $num += 5);
echo $num; // Output: 10
Run Code Online (Sandbox Code Playgroud)
那么如何$num通过引用来使用变量呢?
阅读有关它的文档,它说...
按值变量绑定
如前所述,箭头函数使用按值变量绑定。这大致相当于对箭头函数中使用的每个变量 $x 执行 use($x) 。按值绑定意味着无法修改外部作用域中的任何值:Run Code Online (Sandbox Code Playgroud)$x = 1; $fn = fn() => $x++; // Has no effect $fn(); var_dump($x); // int(1)
所以ATM是不可能的。
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |