ホームページ >バックエンド開発 >PHPチュートリアル >PHP「非静的メソッドの静的呼び出し」エラーを修正するにはどうすればよいですか?

PHP「非静的メソッドの静的呼び出し」エラーを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 20:17:26105ブラウズ

How to Fix the PHP

エラー: 非静的メソッドの静的呼び出し

非静的メソッドに静的関数としてアクセスしようとすると、PHP はエラー メッセージ「厳格な標準: 非静的」を生成します。静的メソッドは静的に呼び出さないでください。この問題は、最初にクラスのオブジェクトをインスタンス化せずにクラス メソッドを利用した場合によく発生します。

解決策:

1.クラス オブジェクトを指定:
この問題を解決するには、クラスのメソッドを呼び出す前にクラスのインスタンスを作成する必要があります。たとえば、

の代わりに、

2 を使用します。メソッドを静的としてマークする:
クラスをインスタンス化せずにメソッドを呼び出す場合は、クラス内でメソッドを静的として定義できます。例:

これにより、クラス名を使用してメソッドを直接呼び出すことができます:

追加の考慮事項:

1。テスト容易性:
静的メソッドとシングルトンはテスト容易性を妨げる可能性があることに注意してください。テスト機能を向上させるために、代替の設計パターンを検討することもできます。

2.コンストラクターの最適化:
コンストラクターに過剰なタスクを配置しないようにします。コンストラクターは、オブジェクトを有効な状態に設定することのみを処理する必要があります。データの依存関係をコンストラクターから直接取得するのではなく、挿入することを検討してください。コンストラクターは値を返すことができず、常に void を返すことに注意してください。

以上がPHP「非静的メソッドの静的呼び出し」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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