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

PHP で「致命的エラー: オブジェクト コンテキストにない場合に $this を使用する」というメッセージが表示されるのはなぜですか?

Barbara Streisand
リリース: 2024-12-25 11:02:41
オリジナル
198 人が閲覧しました

Why Am I Getting the

PHP クラスでの $this の使用

次の操作を試みると、PHP エラー「致命的エラー: オブジェクト コンテキスト内にない $this の使用」が発生します。オブジェクトを必要とするクラスメソッドの外部で $this キーワードにアクセスするinstance.

説明

PHP では、$this キーワードはクラス メソッド内の現在のオブジェクト インスタンスを参照します。静的メソッドやグローバル スコープなど、オブジェクト コンテキストの外で $this を使用しようとすると、前述のエラーが発生します。

提供されたコードエラーがどのように発生するかを示します。 class.php では、foobarfunc() メソッドが誤って $this->foo() にアクセスしようとします。これはオブジェクト インスタンス内でのみ有効です。

Solution

エラーを解決するには、次のことができます。次のいずれか:

  • メソッドを静的メソッドとして作成します:

    static public function foobarfunc() {
      return self::$foo;
    }
    ログイン後にコピー

    これにより、オブジェクト インスタンスの代わりにクラス名を使用してメソッドにアクセスできるようになります。 foob​​ar::foobarfunc().

  • オブジェクト インスタンスを作成し、そのインスタンスで foobarfunc() メソッドを呼び出します。

    $foobar = new foobar;
    $result = $foobar->foobarfunc();
    ログイン後にコピー

静的メソッドはオブジェクト インスタンスを必要とせずにクラス変数やメソッドに直接アクセスできることを覚えておいてください。静的メソッドでは、最初に特定のオブジェクト インスタンスを作成する必要があります。

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

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