Maison > développement back-end > tutoriel php > Comment puis-je modifier des variables globales à partir de fonctions anonymes en PHP ?

Comment puis-je modifier des variables globales à partir de fonctions anonymes en PHP ?

Barbara Streisand
Libérer: 2024-11-13 05:30:02
original
992 Les gens l'ont consulté

How Can I Modify Global Variables from Within Anonymous Functions in PHP?

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

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

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!

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