web-dev-qa-db-fra.com

Fonction de rappel utilisant des variables calculées en dehors de celle-ci

En gros, je voudrais faire quelque chose comme ça:

$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);

Est-ce réellement possible? Calculer une variable en dehors de la fonction anonyme et l'utiliser à l'intérieur?

45
Breno Gazzola

Vous pouvez utiliser le mot clé use pour hériter des variables de la portée parent. Dans votre exemple, vous pouvez effectuer les opérations suivantes:

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

Pour plus d'informations, consultez la page de manuel sur fonctions anonymes .

130
mfonda