在
PHP中使用匿名函数时,可以使用use()关键字轻松地从其范围之外使用变量.
在我的情况下,匿名函数已经被定义在某个地方,但稍后再在某个类别中被其他地方调用.
以下代码是为了说明这个想法:
$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' );
我正在做的是创建一个匿名函数并将其存储在变量中.我将该变量传递给类的方法,这就是我要运行匿名函数的位置.
但是我不能使用use()关键字从方法中获取$arg参数.因为匿名函数在方法之外被声明.
但是我真的需要一种从匿名函数运行的方法中获取变量的方法.有没有办法做到这一点,当匿名功能被宣布在别的地方..?