首页 >后端开发 >php教程 >如何在 PHP 中访问回调函数作用域之外的变量?

如何在 PHP 中访问回调函数作用域之外的变量?

Linda Hamilton
Linda Hamilton原创
2024-12-19 14:38:10593浏览

How Can I Access Variables Outside a Callback Function's Scope in PHP?

回调函数利用其范围之外的变量

在 PHP 中,通常需要使用对直接外部定义的数据进行操作的回调函数范围。为此,可以使用 use 关键字显式导入这些变量。

在提供的示例中,初始化数组 $arr,并计算其平均值 ($avg)。然而,在匿名回调函数 $callback 中,我们遇到了一个问题,因为 $avg 未定义。

为了解决这个问题,我们可以利用 use 关键字:

$callback = function($val) use ($avg) { return $val < $avg; };

通过添加 use ($avg),父作用域中的 $avg 变量被导入到回调函数中,允许我们在计算中使用它。

PHP 中可用的另一种方法7.4及更高版本是箭头函数的使用:

$callback = fn($val) => $val < $avg;

箭头函数自动捕获外部变量,简化流程。或者,我们可以进一步简化,并将回调定义直接包含在 array_filter 调用中:

return array_filter($arr, fn($val) => $val < $avg);

这展示了 PHP 在解决使用回调函数之外计算的变量的需求方面的多功能性。

以上是如何在 PHP 中访问回调函数作用域之外的变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn