Maison > développement back-end > tutoriel php > Comment puis-je accéder à des variables en dehors de la portée d'une fonction de rappel en PHP ?

Comment puis-je accéder à des variables en dehors de la portée d'une fonction de rappel en PHP ?

Linda Hamilton
Libérer: 2024-12-19 14:38:10
original
562 Les gens l'ont consulté

How Can I Access Variables Outside a Callback Function's Scope in PHP?

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; };
Copier après la connexion

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;
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal