PHP 致命的エラー: オブジェクト コンテキストにない場合の $this の使用
問題:
PHP のクラスの非静的メソッド内で $this 変数にアクセスしようとすると、次のエラーが発生します発生: "オブジェクト コンテキストにないときに $this を使用しています。"
回答:
このエラーは、オブジェクト インスタンスの外で $this 変数にアクセスしようとすると発生します。 $this 変数は現在のオブジェクトを参照し、インスタンス化されたオブジェクトのコンテキスト内でのみ使用できます。
解決策:
このエラーを解決するには、次のオブジェクトをインスタンス化します。クラスにアクセスし、オブジェクト インスタンスを通じてメソッドにアクセスします。例:
$object = new MyClass(); $object->myMethod();
また、メソッドが静的である場合は、オブジェクトをインスタンス化せずに、クラス名を使用して直接アクセスできます:
MyClass::staticMethod();
例:
class.php ファイルで、foobarfunc() メソッドが静的メソッド。静的でない場合は、メソッドにアクセスする前に foobar クラスのオブジェクトをインスタンス化する必要があります。
$foobar = new foobar(); $foobar->foobarfunc();
静的メソッドを作成する場合は、メソッドが静的として宣言されていることと、$ foo 変数は静的として宣言されています:
class foobar { public static $foo; public static function foobarfunc() { return self::$foo; } } foobar::foobarfunc();
以上が「オブジェクト コンテキストにない場合に $this を使用する」という PHP 致命的エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。