我一直收到此错误 PHP致命错误:在不在对象上下文中使用$ this 而且我不能为我的生活找出原因。还有另一组眼睛可以提供帮助吗?我有另一个类似的设置,一个不会抛出错误。代码如下(为了便于阅读而略读):
include '< const class id >.php';
class ParseFunctions {
private $_id = '';
public function __construct(){
$id = new IDS;
$this->_id = $id::<const class id>;
}
public function set_id(){
$new_id = $this->id; <--- this line throws the error
$print_r($new_id);
}
}
任何帮助表示赞赏!谢谢!
答案 0 :(得分:0)
这是因为您静态调用set_id
方法(沿ParseFunctions::set_id()
行)。
您不能在该(静态)上下文中使用$this
。您只能在实例(对象上下文)中使用$this
,即$obj = new ParseFunctions; $obj->set_id();
(达到相关行时不会抛出上下文错误)
答案 1 :(得分:0)
虽然您尚未显示如何在代码中调用set_id()
。可能的错误是您在静态上下文中调用它,如下所示:
ParseFunctions::set_id()
是静态上下文,并且不允许在被调用的方法中使用$this
,因为它们不是已经实例化的具体对象。