ホームページ >バックエンド開発 >PHPチュートリアル >「厳密な基準: 非静的メソッドは静的に呼び出すべきではありません」という PHP エラーを修正する方法は?

「厳密な基準: 非静的メソッドは静的に呼び出すべきではありません」という PHP エラーを修正する方法は?

DDD
DDDオリジナル
2024-11-27 05:32:10971ブラウズ

How to Fix the

PHP のエラー「厳密な標準: 非静的メソッドを静的に呼び出すことはできません」の解決

エラー メッセージ「厳密な標準: 非静的メソッドを静的に呼び出すことはできません」 「静的に呼び出されました」は、静的呼び出しを使用して非静的メソッドにアクセスしたときに発生します。このエラーに対処するために、静的に呼び出される場合にすべてのメソッドが静的として宣言されるようにコードを変更します。

提供されたコードでは、Page クラスのメソッドは静的として宣言されていませんが、それらは静的と呼ばれます。この問題を解決するには、メソッド宣言に static キーワードを追加する必要があります。

Modify Page.php

class Page{
    // ...
    public static function getInstanceByName($name=''){
        // ...
    }
    // ...
}

これらのメソッドを静的にすることで、次のことが可能になります。 Index.php にあるように、クラス名を使用してアクセスできます。 file:

// ...
if($page){ // load by name
    $r = Page::getInstanceByName($page);
    if($r && isset($r->id)) $id = $r->id;
}
// ...

追加メモ

  • 静的メソッドとシングルトン パターンは単体テストを妨げる可能性があります。
  • コンストラクターは主に設定に重点を置く必要があります。広範なクエリを実行するのではなく、オブジェクトを有効な状態に戻します。
  • コンストラクターは値を返すことができません。常に void を返します。

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

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