例子:
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'成爲一種方法:) –
是的,把匿名函數作爲方法的好理想。我編輯了這個問題,看到一個新問題。 –