在 PHP 中使用匿名函数时,您可以通过使用use()
关键字轻松地在其范围之外使用变量。
在我的情况下,匿名函数已经在某处定义,但稍后在类中(其他地方)调用。
下面这段代码就是为了说明这个想法:
<?php
$bla = function ( $var1 ) use ($arg)
{
echo $var1;
};
class MyClass
{
private $func;
public function __construct ( $func )
{
$this->func = $func;
}
public function test ( $arg )
{
$closure = $this->func;
$closure ( 'anon func' );
}
}
$c = new MyClass($bla);
$c->test ( 'anon func' );
我正在做的是创建一个anonymous function
并将其存储在一个变量中。我将该变量传递给一个类的方法,这就是我想要运行匿名函数的地方。
但是我不能使用关键字从这种方式use()
获取$arg
参数。method
因为匿名函数是在method
.
但我真的需要一种方法来从运行匿名函数的方法中获取变量。当匿名函数在其他地方声明时,有没有办法做到这一点..?