PHP自动绑定$this,是拷贝还是扩展?
当使用在类上下文中定义的匿名PHP函数时,文档会说“当前类会自动绑定到它,使PHP自动绑定$this,是拷贝还是扩展?,php,oop,anonymous-function,php-closures,Php,Oop,Anonymous Function,Php Closures,当使用在类上下文中定义的匿名PHP函数时,文档会说“当前类会自动绑定到它,使$this在函数的范围内可用” 但我有点困惑这意味着什么,这是指匿名函数有一个类的副本,还是它现在是类的一部分?因此,如果我使用匿名函数对类进行更改,它们将保留在定义匿名函数的原始类中?$PHP中匿名函数中的this变量不是副本,而是绑定,因此如果您更改匿名函数中的$this的内容,父类将受到影响 您可以运行以下代码段检查它: class Foo { private $test = 1; functio
$this
在函数的范围内可用”
但我有点困惑这意味着什么,这是指匿名函数有一个类的副本,还是它现在是类的一部分?因此,如果我使用匿名函数对类进行更改,它们将保留在定义匿名函数的原始类中?
$PHP中匿名函数中的this
变量不是副本,而是绑定,因此如果您更改匿名函数中的$this
的内容,父类将受到影响
您可以运行以下代码段检查它:
class Foo
{
private $test = 1;
function __construct()
{
$func = function() {
$this->test = 2;
};
$func();
var_dump($this);
}
};
new Foo();
谢谢你澄清这一点。如果一个匿名函数有很多调用,并且它改变了
$this
的内容,它们会开始重叠吗,这可能吗?