非静的メソッドの呼び出し
「エラー メッセージ 厳格な標準: 非静的メソッドを静的に呼び出すことはできません」というエラーが発生しました。非静的メソッドが静的メソッドであるかのように呼び出されたときに発生します。
指定されたPHP コードでは、問題は Page クラス内にあります。 getInstanceByName() メソッドと getInstanceBySpecial() メソッドは非静的メソッドとして定義されているため、Page クラスのインスタンスを使用して呼び出す必要があります。ただし、Page クラスのインスタンスを使用せずに、それらを静的メソッドとして呼び出そうとしています。
解決策
この問題を解決するには、メソッドを作成する必要があります。 static キーワードを宣言に追加することで静的になります。変更:
function getInstanceByName($name='') {
:
public static function getInstanceByName($name='') {
同様に、getInstanceBySpecial() メソッドも静的になるように変更します。
これらの変更を行ったら、次のことを行う必要があります。 getInstanceByName() と getInstanceBySpecial() を静的メソッドとして呼び出すことができ、エラー。
以上がPHP で「厳格な基準: 非静的メソッドは静的に呼び出すべきではありません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。