
与编程 PHP 可以,, 有时, 你不得不使用的 匿名函数. 匿名函数都是在中声明的函数 自己流 正在开发和假设,他们都是我们使用的函数的代码的 只有 在那个地方, 因此,我们并不认为他们分开, 重用.
通常, 这些函数作为 接待处 的 回调 其他功能或 事件, 治疗进行编码以他们这样 回调 o 事件 你必须有. 以这种方式, 你可以发展或 面向事件编程, 更典型的为其他语言 JavaScript.
如果你已经使用过编程 Javascript, 什么时候, 举个例子, 对函数的调用 比如, 它具有的参数之一是 回调 你想要它发生时运行的函数 事件.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
一样, 在 PHP 有的时候它是适当使用 回调 作为 函数的参数. 然后我们看到在 PHP 中可能使用匿名函数. 假设我们有一个函数, 其中一个参数是 回调:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
在参数中 $回调, 我们可以直接得到 函数的名称 我想要它运行和我们以前已经定义了, 任一, 直接 匿名函数. 我们将看到这两种形式:
- 通过调用 先前定义的函数:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- 通过使用的 匿名函数:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
如何将参数或变量传递给匿名函数
当我们使用 匿名函数, 内的这些代码, 我们没有访问 到 变量 或您以前已经定义中的对象 的代码流, 所以, 如果你需要引用其中一些, 任一 使全球, 要么我们给他们访问, 正如我们应看到下面:
假设 前面的示例 与一些 前面的代码 添加:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
从匿名函数内 我们没有访问 给变量 $奥克斯 以前定义的. 为了使用此变量, 我们要以下列方式:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
添加, 后的函数标识符 功能(), 这个词 使用 跟随, 括号内, 我们想要访问到该变量, 我们都是 允许 那个从 在匿名函数中 我们有 访问 给变量, 什么美国 将防止 无需申报 全局变量 并随后使用语句的函数内.

我们的留言或输入到论坛