在 create_function 上使用 $this 时出错

error using $this on create_function

当我在 create_function 中使用 $this 时出现错误

Fatal error: Using $this when not in object context

create_function('$model, $this', 'return $this->di->getStatus($model->getStatus)');

以后我这样称呼它

$function($model, $this);

我将 $this 传递给函数,但似乎不起作用。有办法绕过它吗?

谢谢

经过几个小时的调试和研究,我发现我的代码被包裹在一个函数中,所以最终结果类似于

function($var1, $var2) { return create_function()}

这样就创建了闭包,$this 不再在我想要的范围内。

更多关于闭包的信息: http://php.net/manual/ro/class.closure.php