0
如何使用PHP 5.3從閉包訪問方法?下面的代碼可以在PHP 5.4沒有問題,運行:
class ClassName
{
function test(Closure $func)
{
$arr = array('name' => 'tim');
foreach ($arr as $key => $value) {
$func($key, $value);
}
}
function testClosure()
{
$this->test(function($key, $value){
//Fatal error: Using $this when not in object context
$this->echoKey($key, $value); // not working on php 5.3
});
}
function echoKey($key, $v)
{
echo $key.' '.$v.'<br/>';
}
}
$cls = new ClassName();
$cls->testClosure();
它的工作原理!但私人方法如何? $ object無法訪問它們 –
顯然,您不能訪問PHP5.3中的閉包中的私有方法,因爲它與「環境」不同。 – mmoreram