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

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

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


幕布斯6054654
浏览 55回答 1
1回答

蝴蝶不菲

$thisPHP中匿名函数内部的变量不是拷贝,是绑定,所以如果你改变了匿名函数内部的内容$this,父类就会受到影响。您可以检查它是否运行此代码段:class Foo{    private $test = 1;    function __construct()    {        $func = function() {            $this->test = 2;        };        $func();        var_dump($this);    }};new Foo();
打开App,查看更多内容
随时随地看视频慕课网APP