Extension de la portée des variables dans les fonctions anonymes avec des fermetures
En PHP, les fonctions anonymes fonctionnent généralement dans leur propre portée et ne peuvent pas accéder directement aux variables déclarées à l'extérieur d'eux. Cela peut poser des problèmes lors de la tentative de modification de variables globales.
Prenons un exemple :
$variable = "nothing"; functionName($someArgument, function() { $variable = "something"; }); echo $variable; //output: "nothing"
Dans ce script, la fonction anonyme ne parvient pas à modifier la variable $ car elle réside dans un autre portée. Pour surmonter cette limitation, vous pouvez utiliser des fermetures.
Utiliser des fermetures pour référencer des variables globales
Les fermetures, désignées par use(), permettent aux fonctions anonymes d'accéder aux variables du portée englobante. Pour modifier une variable globale dans une fonction anonyme, incluez simplement l'opérateur & dans la fermeture :
functionName($someArgument, function() use(&$variable) { $variable = "something"; });
Dans cet exemple modifié, la fonction anonyme utilise l'opérateur & pour référencer la variable $variable dans la portée globale . Cela permet à la fonction de modifier la valeur de $variable, qui peut ensuite être récupérée et imprimée en dehors de sa portée.
En utilisant des fermetures, vous pouvez étendre efficacement la portée des variables dans les fonctions anonymes, offrant ainsi une plus grande flexibilité lorsque travailler avec des données mondiales.
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!