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

时间:2013-06-28 23:05:11

标签: php

我一直收到此错误 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);
    }
}

任何帮助表示赞赏!谢谢!

2 个答案:

答案 0 :(得分:0)

这是因为您静态调用set_id方法(沿ParseFunctions::set_id()行)。

您不能在该(静态)上下文中使用$this。您只能在实例(对象上下文)中使用$this,即$obj = new ParseFunctions; $obj->set_id();(达到相关行时不会抛出上下文错误)

答案 1 :(得分:0)

虽然您尚未显示如何在代码中调用set_id()。可能的错误是您在静态上下文中调用它,如下所示:

ParseFunctions::set_id()

是静态上下文,并且不允许在被调用的方法中使用$this,因为它们不是已经实例化的具体对象。