ホームページ  >  記事  >  バックエンド開発  >  PHP 致命的エラーの解決: 非オブジェクト エラーでのメンバー関数の呼び出し

PHP 致命的エラーの解決: 非オブジェクト エラーでのメンバー関数の呼び出し

PHPz
PHPzオリジナル
2023-08-27 08:43:501598ブラウズ

解决PHP Fatal error: Call to a member function on a non-object错误

PHP 致命的エラーの解決策: 非オブジェクト エラーでのメンバー関数の呼び出し

PHP プログラミングのプロセスでは、さまざまな間違いに遭遇することがよくあります。その 1 つは、「致命的なエラー: 非オブジェクトのメンバー関数の呼び出し」です。このエラーは通常、非オブジェクトに対してメンバー関数を呼び出したため、プログラムがクラッシュしたことを意味します。この記事では、このエラーの原因と解決策について説明し、実際のコード例をいくつか示します。

このエラーは通常、メンバー関数を呼び出そうとしたときに、呼び出されたオブジェクトが実際にはオブジェクトではないときに発生します。たとえば、次のコードではこのエラーが発生します。

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = null;
$myObject->myMethod();

上記のコードでは、myMethod という名前のメンバー関数を含む MyClass という名前のクラスを定義します。ただし、このクラスをインスタンス化する前に、$myObject を null に割り当てます。したがって、myMethod を呼び出すとき、$myObject はオブジェクトではなく、null 値になります。これにより、PHP は「致命的エラー: 非オブジェクトのメンバー関数の呼び出し」エラーをスローします。

このエラーの解決策は簡単です。メンバー関数を呼び出す前に、オブジェクトがインスタンス化されていることを確認するだけです。上記のコードを次のように変更します。

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = new MyClass();
$myObject->myMethod();

この変更されたコードでは、myMethod を呼び出す前に new キーワードを使用して MyClass オブジェクトをインスタンス化します。このようにして、$myObject は正しいオブジェクトになり、myMethod はエラーなく正常に呼び出すことができます。

このエラーを引き起こすもう 1 つの一般的な状況は、間違った変数名を使用していることです。たとえば、次のコードを考えてみましょう。

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = new MyClass();
$myObject->myMethod();

コードの問題は、変数名を正しい $myClass ではなく $myObject として記述したことです。したがって、myMethod を呼び出すと、PHP は正しいオブジェクトを見つけることができず、「致命的なエラー: 非オブジェクトのメンバー関数の呼び出し」というエラーを報告します。

このエラーを解決するには、オブジェクトの参照に正しい変数名が使用されていることを確認する必要があります。上記のコードを次のように変更します。

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myClass = new MyClass();
$myClass->myMethod();

この変更されたコードでは、変数名を $myObject から正しい $myClass に変更します。このようにして、myMethod を正常に呼び出すことができます。

一般に、「致命的エラー: 非オブジェクトのメンバー関数の呼び出し」エラーを解決する鍵は、メンバー関数を呼び出す前に正しいオブジェクトがインスタンス化されていることを確認し、オブジェクトを参照するための正しい変数名。これらのベスト プラクティスに従うことで、このエラーを効果的に回避し、PHP コードが適切に動作することを確認できます。

この記事で提供されているコード例が、「致命的なエラー: 非オブジェクトのメンバー関数の呼び出し」エラーを解決し、PHP プログラミング スキルを向上させるのに役立つことを願っています。ご質問がある場合、またはさらにサポートが必要な場合はお気軽にお問い合わせください。

以上がPHP 致命的エラーの解決: 非オブジェクト エラーでのメンバー関数の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。