1

我不断收到此错误PHP Fatal error: Using $this when not in object context并且我一生都无法弄清楚原因。是否有另一双眼睛可以提供帮助?我有另一个类似设置的类,并且没有抛出错误。代码如下(为了便于阅读,略读):

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);
    }
}

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

4

2 回答 2

0

这是因为您正在set_id静态调用该方法(沿线ParseFunctions::set_id())。

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

于 2013-06-28T23:12:06.327 回答
0

尽管您还没有展示如何set_id()在代码中调用。可能的错误是您在这样的静态上下文中调用它:

ParseFunctions::set_id()

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

于 2013-06-28T23:14:03.587 回答