Je jouais avec des fonctions anonymes dans PHP et j'ai réalisé qu'elles ne semblaient pas atteindre des variables en dehors d'elles. Y a-t-il un moyen de contourner ce problème?
Exemple:
$variable = "nothing";
functionName(someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
Cela ne produira "rien". Existe-t-il un moyen pour la fonction anonyme d'accéder à $variable
?
Oui, tilisez une fermeture :
functionName(someArgument, function() use( &$variable) {
$variable = "something";
});
Notez que pour pouvoir modifier $variable
et récupérer la valeur modifiée en dehors de la portée de la fonction anonyme, elle doit être référencée dans la fermeture à l'aide de &
.