Modificar una variable de ámbito global dentro de una función anónima

1 minuto de lectura

avatar de usuario de einord
einord

Estaba jugando con funciones anónimas en PHP y me di cuenta de que no parecen alcanzar variables fuera de ellas. ¿Hay alguna forma de solucionar este problema?

Ejemplo:

$variable = "nothing";

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

echo $variable;  //output: "nothing"

Esto generará “nada”. ¿Hay alguna forma de que la función anónima pueda acceder a la $variable?

avatar de usuario de nickb
apodo

Sí, usar un cierre:

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

Tenga en cuenta que para poder modificar $variable y recuperar el valor modificado fuera del alcance de la función anónima, se debe hacer referencia en el cierre mediante &.

¿Ha sido útil esta solución?