通过调用bindTo在闭包中使用$ this

时间:2016-04-01 18:54:40

标签: php

考虑以下代码,即使我使用Using $this when not in object context函数设置bindTo

的上下文,它仍会引发错误Class A
class A {

    protected $name = 'a';

    function _do(Closure $something) {
        $var = function()use ($something) {
            // suppose to bind the instance of class a for $something
            $something->bindTo($this); 
            $something();
        };
        $var();
    }

}

$a = new A();
$a->_do(function() {
    // using $this as an instance of class A
    echo $this->name;
});

1 个答案:

答案 0 :(得分:1)

bindTo返回一个新的匿名函数。它不会改变现有的。