使用回调函数外部计算的变量
在 PHP 中,可以在回调函数外部计算变量并在这些函数中使用它们。让我们考虑以下场景:
你有一个数组 $arr 并希望使用 array_filter 创建一个仅包含小于 $arr 中元素平均值的值的新数组。
来实现如果使用回调函数,您可能会遇到在函数外部计算平均值并在函数内部使用它的挑战。不过,use 关键字提供了一个解决方案。
使用 use 关键字
use 关键字允许匿名函数从父作用域继承变量。在这种情况下,您可以如下定义回调函数:
$avg = array_sum($arr) / count($arr); $callback = function($val) use ($avg) { return $val < $avg; };
这里,$avg是使用use关键字从父作用域继承的。回调函数现在可以使用 $avg 来过滤元素。
return array_filter($arr, $callback);
使用箭头函数(PHP 7.4 或更高版本)
PHP 7.4 引入了箭头函数,它们是匿名函数的更简洁的替代方案。箭头函数自动捕获外部变量,无需使用。
您可以按如下方式定义回调函数:
$callback = fn($val) => $val < $avg;
使用箭头函数简化数组过滤
由于箭头函数非常简洁,您可以将它们直接嵌入到 array_filter 中call:
return array_filter($arr, fn($val) => $val < $avg);
综上所述,use关键字或箭头函数可以让你在回调函数之外计算变量并在回调函数内使用它们,从而实现更灵活、方便的过滤操作。
以上是如何在 PHP 中使用回调函数外部计算的变量?的详细内容。更多信息请关注PHP中文网其他相关文章!