PHP自动绑定$this,是复制还是扩展?



当使用在类上下文中定义的匿名PHP函数时,文档说"当前类自动绑定到它,使$this在函数的作用域内可用"。

但是我有点困惑这意味着什么,这是否意味着匿名函数具有该类的副本,或者它现在是该类的一部分?因此,如果我使用匿名函数对类进行更改,它们将保留在定义匿名函数的原始类中吗?

PHP 中匿名函数中的$this变量不是副本,而是绑定,因此如果您更改匿名函数内$this的内容,父类将受到影响。

您可以运行此代码片段来检查它:

class Foo
{
private $test = 1;
function __construct()
{
$func = function() {
$this->test = 2;
};
$func();
var_dump($this);
}
};
new Foo();

相关内容

  • 没有找到相关文章

最新更新