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 に答える