PHP クラスでの $this の使用
次の操作を試みると、PHP エラー「致命的エラー: オブジェクト コンテキスト内にない $this の使用」が発生します。オブジェクトを必要とするクラスメソッドの外部で $this キーワードにアクセスするinstance.
説明
PHP では、$this キーワードはクラス メソッド内の現在のオブジェクト インスタンスを参照します。静的メソッドやグローバル スコープなど、オブジェクト コンテキストの外で $this を使用しようとすると、前述のエラーが発生します。
例
提供されたコードエラーがどのように発生するかを示します。 class.php では、foobarfunc() メソッドが誤って $this->foo() にアクセスしようとします。これはオブジェクト インスタンス内でのみ有効です。
Solution
エラーを解決するには、次のことができます。次のいずれか:
メソッドを静的メソッドとして作成します:
static public function foobarfunc() { return self::$foo; }
これにより、オブジェクト インスタンスの代わりにクラス名を使用してメソッドにアクセスできるようになります。 foobar::foobarfunc().
オブジェクト インスタンスを作成し、そのインスタンスで foobarfunc() メソッドを呼び出します。
$foobar = new foobar; $result = $foobar->foobarfunc();
静的メソッドはオブジェクト インスタンスを必要とせずにクラス変数やメソッドに直接アクセスできることを覚えておいてください。静的メソッドでは、最初に特定のオブジェクト インスタンスを作成する必要があります。
以上がPHP で「致命的エラー: オブジェクト コンテキストにない場合に $this を使用する」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。