使用$ this和php中的匿名函数中的受保护变量(5.3!)

时间:2014-06-22 19:50:03

标签: php

你知道它不是在PHP 5.3中工作,而是在5.4中,所以有一点解决方法:

$thisObj = $this;
$thisObj->parameters = 1; // works!
$result = $this->method(function() use ($returnThisIndex, $thisObj) {
    $thisObj->parameters = 1; // wont work! Its a protected variable!
});

所以这里我将一个函数传递给一个方法。问题是,“parameters”是一个受保护的变量,所以在这个方法中仍然没有看到它。那么如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

使用班级中的设置功能

public function setParam($param) {
     $this->parameters = $param;
}

然后在你的匿名函数中

$thisObj->setParam(1);