Maison > développement back-end > tutoriel php > Comment puis-je accéder et modifier des variables externes dans une fonction anonyme en PHP ?

Comment puis-je accéder et modifier des variables externes dans une fonction anonyme en PHP ?

DDD
Libérer: 2024-11-14 17:56:02
original
856 Les gens l'ont consulté

How can I access and modify external variables within an anonymous function in PHP?

Utilisation de fonctions anonymes comme paramètres pour accéder aux variables externes

Le scénario implique une fonction pratique qui traite facilement les lignes de la base de données. Cependant, une exigence spécifique se pose lorsque vous devez concaténer tous les titres du jeu de résultats dans une seule variable. Cela soulève la question de savoir comment y parvenir sans recourir à l'approche moins élégante consistant à utiliser le mot-clé global.

Une solution réside dans l'utilisation de variables de fermeture. Plus précisément, le mot-clé use permet aux fermetures d'hériter des variables de la portée parent. Ceci est différent des variables globales, qui persistent dans toutes les fonctions.

Pour implémenter cette solution, le code peut être modifié comme suit :

$result = '';
fetch("SELECT title FROM tbl", function($r) use (&$result) {
   $result .= $r['title'];
});
Copier après la connexion

En ajoutant use ($result) à la fonction anonyme, nous pouvons référencer et modifier la variable résultat depuis la fonction. Le mot-clé use transmet effectivement une référence à la variable de résultat à la fermeture.

Il est important de noter que cette approche implique une liaison précoce, ce qui signifie que la fermeture utilise la valeur de la variable au moment de la déclaration de la fonction, pas au moment de l'appel de fonction (liaison tardive). C'est quelque chose à garder à l'esprit lors de l'utilisation de fermetures à cette fin.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal