ホームページ > バックエンド開発 > PHPチュートリアル > 「PHP 致命的エラー: オブジェクト コンテキストにない場合に $this を使用する」エラーが発生するのはなぜですか?

「PHP 致命的エラー: オブジェクト コンテキストにない場合に $this を使用する」エラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-12-30 11:24:13
オリジナル
688 人が閲覧しました

Why Am I Getting the

「PHP 致命的なエラー: オブジェクト コンテキストにない場合に $this を使用する」が解決されました

エラー「致命的なエラー: オブジェクト コンテキストにない場合に $this を使用する」が発生しましたオブジェクト コンテキスト内にありません」は、参照された $this キーワードがクラス コンテキストの外で使用されていることを示します。これをよりよく理解するために、コードを分析してみましょう。

index.php では、load.php ファイルが必要であり、さらに、class.php が必要です。 class.php 内では、コンストラクター内の $this->foo 割り当てが原因でエラーが発生します。

行 $this->foo = $foo;現在のオブジェクトの foo プロパティにアクセスしようとしますが、オブジェクトをインスタンス化しないと、参照する $this がありません。したがって、この行はオブジェクト コンテキストの外では無効です。

エラーを修正するには、foobar クラスのオブジェクトをインスタンス化し、そのオブジェクトでそのメソッドを呼び出す必要があります。これは、次の例で実現できます。

  1. 静的メソッドの呼び出し:

    foobarfunc メソッドを静的として宣言し、静的変数 $foo を定義して、class.php を変更します。 。これにより、オブジェクトをインスタンス化せずにメソッドを直接呼び出すことができます。

  2. オブジェクト呼び出し:

    $foobar = new foobar; を使用して foobar クラスのオブジェクトをインスタンス化します。そして、$foobar->foobarfunc(); を使用してそのオブジェクトのメソッドを呼び出します。

したがって、オブジェクト コンテキストの外で $this を使用しようとすると、エラーが発生します。これを解決するには、$this 参照を使用せずに静的メソッドを使用するか、オブジェクトをインスタンス化してそのオブジェクトのメソッドを呼び出します。

以上が「PHP 致命的エラー: オブジェクト コンテキストにない場合に $this を使用する」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート