PHP メソッド宣言の互換性
PHP では、「厳密な標準: childClass::customMethod() の宣言は次と互換性がある必要があります」というエラーが発生します。 「parentClass::customMethod() のそれ」は、子クラスとその親クラスのメソッドの宣言間の不一致を示します。 method.
考えられる原因:
子メソッドに次のいずれかがある場合にエラーが発生します:
-
異なる引数: メソッドの引数の数、順序、データ型は親の引数と一致する必要があります。
-
異なるアクセス レベル: 子メソッドのアクセス レベル (パブリック、プライベート、または保護) は、親メソッドのアクセス レベルと同じか、親メソッドのアクセス レベルより制限が緩い必要があります。
互換性情報の検索:
PHP は次を使用します。メソッドの互換性を定義するルール:
-
引数: 引数の宣言は、数と型の両方で一致する必要があります。
-
アクセス レベル: 子メソッドアクセスはより制限的にすることもできます (例: パブリックからプライベートへ) が、制限を緩めることはできません (例: プライベートからプライベートへ)。 public).
-
戻り値の型: 子メソッドの戻り値の型は共変にすることができます。これは、親の戻り値の型のサブクラスを返すことができることを意味します。
追加のドキュメントとメソッドの互換性に関する例は、次の PHP マニュアル ページにあります。
- [オーバーロードと[継承](https://www.php.net/manual/en/ language.oop5.overloading.php)
- [メソッドの可視性](https://www.php.net/manual/en/ language.oop5.visibility.php)
- [共分散と反変性](https://www.php.net/manual/en/ language.oop5.variance.php)
以上がPHP が「厳密な標準: childClass::customMethod() の宣言はparentClass::customMethod() の宣言と互換性がある必要があります」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。