ホームページ > バックエンド開発 > PHPチュートリアル > PHP で「厳格な基準: 非静的メソッドは静的に呼び出すべきではありません」というメッセージが表示されるのはなぜですか?

PHP で「厳格な基準: 非静的メソッドは静的に呼び出すべきではありません」というメッセージが表示されるのはなぜですか?

Susan Sarandon
リリース: 2024-11-24 06:04:12
オリジナル
870 人が閲覧しました

Why Am I Getting

非静的メソッドの呼び出し

「エラー メッセージ 厳格な標準: 非静的メソッドを静的に呼び出すことはできません」というエラーが発生しました。非静的メソッドが静的メソッドであるかのように呼び出されたときに発生します。

指定されたPHP コードでは、問題は Page クラス内にあります。 getInstanceByName() メソッドと getInstanceBySpecial() メソッドは非静的メソッドとして定義されているため、Page クラスのインスタンスを使用して呼び出す必要があります。ただし、Page クラスのインスタンスを使用せずに、それらを静的メソッドとして呼び出そうとしています。

解決策

この問題を解決するには、メソッドを作成する必要があります。 static キーワードを宣言に追加することで静的になります。変更:

function getInstanceByName($name='') {
ログイン後にコピー

:

public static function getInstanceByName($name='') {
ログイン後にコピー

同様に、getInstanceBySpecial() メソッドも静的になるように変更します。

これらの変更を行ったら、次のことを行う必要があります。 getInstanceByName() と getInstanceBySpecial() を静的メソッドとして呼び出すことができ、エラー。

以上がPHP で「厳格な基準: 非静的メソッドは静的に呼び出すべきではありません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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