在回调函数中访问外部变量
在 PHP 中,通常需要将回调函数与在函数外部计算的变量结合使用范围。这种情况提出了一个问题:是否可以在回调中访问此类变量?
使用关键字和箭头函数
幸运的是,PHP 通过使用提供了解决方案关键词。您可以通过在回调定义前面加上 use 来从父作用域继承变量。例如:
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $avg = array_sum($arr) / count($arr); $callback = function($val) use ($avg) { return $val < $avg; }; return array_filter($arr, $callback);
对于 PHP 7.4 及更高版本,箭头函数提供了更优雅的方法。箭头函数自动捕获外部变量:
$callback = fn($val) => $val < $avg;
在 array_filter 调用中,您可以直接使用箭头函数:
return array_filter($arr, fn($val) => $val < $avg);
通过利用 use 关键字或箭头函数,它变得简单在 PHP 的回调函数中访问外部变量。
以上是如何在 PHP 回调函数中访问外部变量?的详细内容。更多信息请关注PHP中文网其他相关文章!