ホームページ >バックエンド開発 >PHPチュートリアル >PHP で「メソッドの宣言は親メソッドと互換性がある必要があります」エラーが表示されるのはなぜですか?

PHP で「メソッドの宣言は親メソッドと互換性がある必要があります」エラーが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-11-02 07:00:30378ブラウズ

Why Do I Get the

PHP の「メソッドの宣言は親メソッドと互換性がある必要があります」エラーについて

PHP でオブジェクト指向プログラミングを使用する場合、 「厳密な標準: childClass::customMethod() の宣言は、の宣言と互換性がある必要があります」というエラーが発生する可能性があります。 parentClass::customMethod()。」このエラーは、子クラスのメソッドの宣言が、親クラスの対応するメソッドの宣言と一致する必要があることを示します。

考えられる原因:

エラー次の 2 つの主な理由で発生する可能性があります:

  • 引数の不一致:子クラスのメソッドには、親メソッドと比較して異なる入力パラメーター (引数) があります。これには、引数の数、型、または順序の違いが含まれます。
  • アクセス レベルの不一致: 子クラスのメソッドのアクセス レベル (パブリック、プライベート、または保護) が一致していません。親メソッドと同じです。たとえば、親クラスで「public」として宣言されたメソッドを、子クラスで「private」として宣言することはできません。

互換メソッド宣言:

互換性を確保するには、子クラスのメソッドの宣言は、次の親クラスの宣言と一致する必要があります。側面:

  • 入力パラメータ (数値、型、順序)
  • 戻り値の型
  • アクセス レベル

ドキュメントとリソース:

  • [公式 PHP]マニュアル: メソッドのオーバーロード](https://www.php.net/manual/en/ language.oop5.overloading.php)
  • [PHPStan: 基本レベルのメソッドの互換性](https://phpstan.org /user-guide/rules/methods/basic-method-compatibility)
  • [スタック オーバーフロー: 「メソッドの宣言」とは何ですか? class::method はparentClass::method のそれと互換性がある必要があります」とはどういう意味ですか?](https://stackoverflow.com/questions/2194559/what-does-the-declaration-of-method-classmethod-Should-be-compatibility -それと)

以上がPHP で「メソッドの宣言は親メソッドと互換性がある必要があります」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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