Fonction de rappel utilisant des variables en dehors de sa portée
En PHP, il est souvent souhaitable d'utiliser des fonctions de rappel qui opèrent sur des données définies en dehors de leur champ d'application immédiat. portée. Pour y parvenir, le mot-clé use peut être utilisé pour importer explicitement ces variables.
Dans l'exemple fourni, un tableau $arr est initialisé et sa moyenne ($avg) est calculée. Cependant, au sein de la fonction de rappel anonyme $callback, nous rencontrons un problème car $avg n'est pas défini.
Pour résoudre ce problème, nous pouvons exploiter le mot-clé use :
$callback = function($val) use ($avg) { return $val < $avg; };
En ajoutant use ($avg), la variable $avg du scope parent est importée dans la fonction de rappel, nous permettant de l'utiliser dans notre calcul.
Une autre approche disponible en PHP 7.4 et plus tard est l'utilisation de fonctions fléchées :
$callback = fn($val) => $val < $avg;
Les fonctions fléchées capturent automatiquement les variables extérieures, rationalisant ainsi le processus. Alternativement, nous pouvons simplifier davantage et inclure la définition de rappel directement dans l'appel array_filter :
return array_filter($arr, fn($val) => $val < $avg);
Cela démontre la polyvalence de PHP pour répondre à la nécessité d'utiliser des variables calculées en dehors des fonctions de rappel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!