ホームページ  >  記事  >  バックエンド開発  >  PHP エラーの解決: 非オブジェクト メソッドを呼び出そうとしています

PHP エラーの解決: 非オブジェクト メソッドを呼び出そうとしています

WBOY
WBOYオリジナル
2023-08-25 18:16:451250ブラウズ

PHP エラーの解決: 非オブジェクト メソッドを呼び出そうとしています

PHP エラーの解決策: 非オブジェクト メソッドを呼び出してみてください

PHP 開発を使用するプロセスでは、いくつかのエラー メッセージが頻繁に発生します。その 1 つは次のとおりです。 「非オブジェクトのメソッドを呼び出してみてください。」このエラーは、メソッドを呼び出そうとしたときに、使用されたオブジェクトが正当なオブジェクトではないことを意味します。この記事では、この問題の解決に役立ついくつかの一般的な原因と解決策を紹介します。

  1. オブジェクトが正しく初期化されているかどうかを確認する

一般的な理由は、メソッドを呼び出す前にオブジェクトを正しく初期化しなかったことです。たとえば、クラスをインスタンス化した後、オブジェクトのインスタンスを作成するためにキーワード「new」を使用するのを忘れます。したがって、オブジェクトのメソッドを呼び出すと、エラーが報告されます。

これはサンプル コードです:

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = Example;  // 错误的初始化方式,忘记了关键字“new”
$example->test();    // 报错:尝试调用非对象的方法

この問題を解決するには、オブジェクトをインスタンス化するときにキーワード「new」を追加するだけです。修復されたコードは次のとおりです。

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = new Example;  // 正确的初始化方式
$example->test();        // 正常输出:调用成功!
  1. オブジェクトが null かどうかを確認する

もう 1 つの一般的な理由は、メソッド deal with を呼び出す前にオブジェクトを null にしていないことです。 null のオブジェクトに対してメソッドを呼び出そうとすると、エラーが報告されます。

以下はサンプル コードです:

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
$example->test();  // 报错:尝试调用非对象的方法

この問題を解決するには、メソッドを呼び出す前に null 条件を追加するだけです。修復されたコードは次のとおりです。

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
if($example != null){
    $example->test();    // 不会报错,因为已经进行了判空处理
}
  1. オブジェクトの型が正しいかどうかを確認してください

別の状況では、メソッドを呼び出そうとしたときに、使用されたオブジェクトが期待していたタイプではありません。この場合、通常は型チェックを使用してこのエラーを回避します。

以下はサンプル コードです:

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
$str->test();  // 报错:尝试调用非对象的方法

この例では、実際にはオブジェクトのメソッドを呼び出したいのですが、文字列を使用します。この問題を解決するには、型チェックを使用して、使用しているオブジェクトが正しい型であることを確認します。

この問題を解決するには、単に is_object() 関数を使用して型チェックを実行します。修復されたコードは次のとおりです。

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
if(is_object($str)){
    $str->test();    // 不会报错,因为已经进行了类型检查
}

概要:

PHP 開発プロセス中に、「非オブジェクト メソッドを呼び出そうとしています」というエラーが発生した場合、まず、 object 正しく初期化され、null であり、正しい型です。特定の状況に応じて対応するソリューションを採用することで、この問題を効果的に解決できます。この記事が、PHP エラー報告に関する一般的な問題を解決し、開発効率を向上させるのに役立つことを願っています。

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

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