Maison > développement back-end > tutoriel php > Comment puis-je modifier une variable globale à partir d'une fonction anonyme en PHP ?

Comment puis-je modifier une variable globale à partir d'une fonction anonyme en PHP ?

Patricia Arquette
Libérer: 2024-11-19 00:44:02
original
991 Les gens l'ont consulté

How Can I Modify a Global Variable from Within an Anonymous Function in PHP?

Accès aux variables de portée globale dans les fonctions anonymes

En PHP, les fonctions anonymes héritent généralement de la portée locale de la fonction englobante ou de la portée globale si défini en dehors de toute fonction. Cependant, lorsque vous tentez de modifier une variable de portée globale à partir d'une fonction anonyme, vous pouvez rencontrer des problèmes.

Modification de variables de portée globale

Considérez l'exemple suivant :

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  // Output: "nothing"
Copier après la connexion

Malgré la tentative de modification de $variable dans la fonction anonyme, le résultat reste "rien". En effet, les fonctions anonymes créent leur propre portée et n'héritent pas directement de la portée globale.

Solution : fermetures

Pour résoudre cette limitation, vous pouvez utiliser des fermetures. Les fermetures vous permettent de capturer des variables de la portée englobante dans une nouvelle portée. Pour modifier une variable de portée globale à partir d'une fonction anonyme, utilisez la syntaxe suivante :

functionName($someArgument, function() use (&$variable) {
  $variable = "something";
});
Copier après la connexion

En ajoutant use avant le nom de la variable et en la référençant avec &, vous créez une fermeture qui capture la variable par référence, permettant la modification au sein de la fonction anonyme.

Conclusion

L'utilisation des fermetures vous permet d'accéder et de modifier globalement variables de portée à partir de fonctions anonymes, surmontant la limitation de la création d'une nouvelle portée au sein d'une fonction anonyme. En capturant la variable par référence, vous pouvez effectuer des modifications qui persisteront en dehors de la portée 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