Vous pouvez utiliser le use
pour hériter des variables de la portée parent. Dans votre exemple, vous pourriez faire ce qui suit :
$callback = function($val) use ($avg) { return $val < $avg; };
Pour plus d'informations, voir la page du manuel sur fonctions anonymes .
Si vous utilisez PHP 7.4 ou une version ultérieure, fonctions de la flèche peuvent être utilisées. Les fonctions fléchées sont un moyen alternatif et plus concis de définir des fonctions anonymes, qui capturent automatiquement les variables externes, éliminant ainsi le besoin de recourir aux fonctions use
:
$callback = fn($val) => $val < $avg;
Compte tenu de la concision des fonctions flèches, vous pouvez raisonnablement les écrire directement dans le fichier array_filter
appeler :
return array_filter($arr, fn($val) => $val < $avg);