Maison  >  Article  >  développement back-end  >  Comment puis-je accéder et modifier des variables externes dans des fonctions anonymes ?

Comment puis-je accéder et modifier des variables externes dans des fonctions anonymes ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-18 05:02:02215parcourir

How can I access and modify external variables within anonymous functions?

Passer des variables externes à des fonctions anonymes en tant que paramètres

Dans le domaine de la programmation, les fonctions anonymes offrent un moyen pratique d'encapsuler la logique sans nécessiter de déclarations de fonctions. Cependant, accéder aux variables externes au sein de telles fonctions anonymes peut poser un défi.

Capturer les variables avec "use"

Pour accéder à une variable externe au sein d'une fonction anonyme, le " Le mot-clé use" peut être utilisé. Ce mot-clé lie la variable externe à la fonction anonyme, permettant sa manipulation et sa modification.

Exemple

Considérez le scénario suivant :

$result = '';
fetch("SELECT title FROM tbl", function($r) use (&$result) {
   $result .= $r['title'];
});

Ici, le mot-clé "use" est utilisé pour lier la variable externe "$result" à la fonction anonyme. Cela permet à la fonction d'accéder et de modifier la valeur de "$result" dans sa portée.

Avantages de "use"

Utiliser "use" pour capturer les offres de variables plusieurs avantages :

  • Accès contrôlé : Il restreint la fonction anonyme d'accéder à toute variable externe autre que celles explicitement répertoriées avec "use".
  • Modification directe : La variable liée peut être directement modifiée dans la fonction anonyme, comme le montre l'exemple ci-dessus où "$result" est ajouté.

Limitations de "l'utilisation "

Cependant, il est important de noter que les variables "use" sont liées au moment de la déclaration, plutôt qu'au moment de l'invocation. Cela signifie que toute modification apportée à la variable en dehors de la fonction anonyme ne sera pas reflétée dans la fonction.

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!

Déclaration:
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