Accès aux variables globales dans les fonctions anonymes
En PHP, les fonctions anonymes n'ont intrinsèquement pas accès aux variables globales. Cela peut poser des problèmes lorsque vous tentez de manipuler des variables externes à partir de ces fonctions anonymes.
Exemple :
Considérez le code suivant :
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; });
Lors de l'exécution de ce code, la variable $ reste "rien" car la fonction anonyme ne peut pas accéder à la portée globale.
Solution : Fermetures
Pour résoudre ce problème, PHP introduit le concept de fermetures. Les fermetures permettent la manipulation de variables à partir d'une portée englobante au sein d'une fonction anonyme. Pour créer une fermeture, ajoutez le mot-clé use à la déclaration de fonction anonyme :
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
Dans ce cas, le mot-clé use est accompagné d'une esperluette (&), indiquant que la variable $variable sera passée par référence. Cela permet à la fonction anonyme de modifier la variable $ globale.
Remarque : Il est essentiel d'utiliser l'esperluette (&) lors du référencement de variables dans une fermeture pour garantir que la variable globale est modifiée. , et les modifications sont reflétées en dehors de la fonction anonyme.
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!