PHP手册说明:在PHP 5.4.0之前的匿名函数中,无法使用
$this
。可以在匿名函数页面上查看相关信息。但我发现,通过将$this
赋值给一个变量,并将该变量传递给函数定义处的use
语句,可以使其正常工作。$CI = $this;
$callback = function () use ($CI) {
$CI->public_method();
};
这是一个好的实践吗?
在 PHP 5.3 中,有更好的方法来使用匿名函数访问 $this
吗?
$CI = $this;
和$CI =& $this;
并不完全相同。也许对于你的目的来说它们是相同的,但它们并不相同。使用这两个版本尝试$CI = 'bla'; var_dump($this);
以查看差异。 - Rudie