PHP错误:不在对象上下文中使用$this
我不断地遇到这个错误PHP致命错误:当不在对象上下文中使用$this时,我一辈子都无法找出原因。有没有另一双眼睛能帮上忙?我有另一个类似的类,这个类没有抛出错误。为了便于阅读,代码如下所示:PHP错误:不在对象上下文中使用$this,php,Php,我不断地遇到这个错误PHP致命错误:当不在对象上下文中使用$this时,我一辈子都无法找出原因。有没有另一双眼睛能帮上忙?我有另一个类似的类,这个类没有抛出错误。为了便于阅读,代码如下所示: include '< const class id >.php'; class ParseFunctions { private $_id = ''; public function __construct(){ $id = new IDS; $
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);
}
}
感谢您的帮助!谢谢大家! 这是因为您正在沿着ParseFunctions::set_id静态调用set_id方法
在静态上下文中不能使用$this。您只能在实例对象上下文中使用$this,即$obj=newparsefunctions$obj->set_id;当到达相关行时,不会抛出上下文错误,尽管您还没有说明如何在代码中调用set\u id。可能的错误是您在静态上下文中调用它,如下所示:
ParseFunctions::set_id()
是静态上下文,不允许在被调用的方法中使用$this,因为它们不是已实例化的具体对象。$this->id不存在。它应该是$this->\u id吗?与此问题无关,但这是一个奇怪的setter,因为您没有向它传递参数。您能演示一下如何调用set_id吗?如果您试图在某个静态上下文中调用,则会导致此错误。id/\u id不应导致此错误。老实说,这个错误的本质是这样的,除非我们能够看到set_id是如何被调用的,否则很难帮助我们。我猜你是在某处静态调用set_id,例如::set_id而不是->set_id$id:;这是PHP吗?oOPost实际代码,而不是摘录和样式化标识符占位符。感谢您的回答!你给我指明了正确的方向!