Función anónima
La sintaxis de las funciones anónimas es:
function(){
//函数体
};//注意分号
Debido a que estas funciones no se pueden ejecutar, generalmente se guardan en variables:
$func = function(){
echo 'Hello World';
};
Luego, cuando se llama, es como una función de devolución de llamada.
$func();
Entonces, ¿por qué debería haber funciones anónimas?
La razón es: la
variable guarda una función, esencialmente obteniendo un objeto (cierre),
que también es un cierre
Cierre
Probablemente significa que la función interna puede acceder a las variables de la función externa incluso si la función externa ha finalizado (devuelto).
En circunstancias normales, la función return significa liberación, es decir, las variables internas desaparecen y no se puede acceder a ellas. Pero el cierre puede evitar su liberación y no ser reciclado por el sistema.
como
function display(){
//定义一个局部变量
$name = 'tattoo';
//定义匿名函数
$innerfunction = function(){
echo $name;//这里试图调用外面的name函数
}
}
display();
El resultado definitivamente será un error, porque el nombre no se puede pasar a la función interna
¿Cómo podemos conectar la función anónima con la función externa?
Puede agregar un uso después de la función
function display(){
//定义一个局部变量
$name = 'tattoo';
//定义匿名函数
$innerfunction = function() use($name){
echo $name;//这里试图调用外面的name函数
}
}
display();
Esto forma un cierre.
Combinando con el conocimiento de los parámetros de paso aprendidos anteriormente, podemos saber: la variable de nombre utilizada en el uso anterior es en realidad una versión copiada y no cambiará el valor del nombre original,
por lo que se puede escribir como & $ nombre