在Closure PHP中访问实例对象

时间:2018-08-16 00:24:28

标签: php closures

我想使用覆盖函数中所有$a对象的属性访问$a对象方法myMethod()。我该怎么做?非常感谢您的帮助。

$a = new A('property');
$a->testFunc = Closure::bind(function() {
    // here the object scope was gone...
    $a->myMethod();
    $this->var = "overridden";
}, $a);

1 个答案:

答案 0 :(得分:0)

在定义函数时可以使用use关键字:

$a = new A('property');
$a->testFunc = Closure::bind(function() use ($a) {
    // here the object scope was gone...
    $a->myMethod();
    $this->var = "overridden";
}, $a);

这将告诉php将$a包含在函数范围内。