【发布时间】:2012-01-13 12:50:13
【问题描述】:
PHP 手册说明
在 PHP 之前不能在匿名函数中使用
$this5.4.0
在anonymous functions page 上。但我发现我可以通过将$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 我正在添加documentation 以供您发表评论
-
@steampowered 网上有一个很好的例子/文章,但我找不到它=) 抱歉。如果您没有看到差异,请尝试一下。这很明显。