基本上我想做这样的事情:
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$avg = array_sum($arr) / count($arr);
$callback = function($val){ return $val < $avg };
return array_filter($arr, $callback);
这实际上可能吗?在匿名函数外部计算变量并在内部使用它?
您可以使用use
关键字从父作用域继承变量。在您的示例中,您可以执行以下操作:
$callback = function($val) use ($avg) { return $val < $avg; };
有关更多信息,请参阅手册页匿名函数.
如果您运行的是 PHP 7.4 或更高版本,箭头函数可以使用。箭头函数是定义匿名函数的另一种更简洁的方法,它会自动捕获外部变量,从而无需use
:
$callback = fn($val) => $val < $avg;
考虑到箭头函数的简洁性,您可以合理地将它们直接写在array_filter
call:
return array_filter($arr, fn($val) => $val < $avg);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)