例子:
class foo {
private $x=array();
public function foo() {
$z = function ($a) use (&$this->x) {
...
}
}
}
错误:不能使用$以此为词法变量
顺应形势,我们可以声明匿名的方法......所以另外一个问题到达。我的“真实案例”,
// a very specific problem...
class foo {
private $x=array();
public function foo($m) {
// ... use $this->x and $m ...
return $ret;
}
public function bar() {
$str = preg_replace_callback('/aaaa/', $this->foo, $str);
}
}
错误:未定义的属性$ foo的...
是的,应对非完美的解决方案.. 。没有比PHP更好的“转义语法”了? –
那么优雅的解决方案是使'$ z'成为一种方法:) –
是的,把匿名函数作为方法的好理想。我编辑了这个问题,看到一个新问题。 –