Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP错误:不在对象上下文中使用$this_Php - Fatal编程技术网

PHP错误:不在对象上下文中使用$this

PHP错误:不在对象上下文中使用$this,php,Php,我不断地遇到这个错误PHP致命错误:当不在对象上下文中使用$this时,我一辈子都无法找出原因。有没有另一双眼睛能帮上忙?我有另一个类似的类,这个类没有抛出错误。为了便于阅读,代码如下所示: include '< const class id >.php'; class ParseFunctions { private $_id = ''; public function __construct(){ $id = new IDS; $

我不断地遇到这个错误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);
    }
}
感谢您的帮助!谢谢大家!

这是因为您正在沿着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实际代码,而不是摘录和样式化标识符占位符。感谢您的回答!你给我指明了正确的方向!