ホームページ > バックエンド開発 > PHPチュートリアル > PHP が「厳密な標準: childClass::customMethod() の宣言はparentClass::customMethod() の宣言と互換性がある必要があります」をスローするのはなぜですか?

PHP が「厳密な標準: childClass::customMethod() の宣言はparentClass::customMethod() の宣言と互換性がある必要があります」をスローするのはなぜですか?

Linda Hamilton
リリース: 2024-12-09 21:40:15
オリジナル
390 人が閲覧しました

Why Does PHP Throw

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 サイトの他の関連記事を参照してください。

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