Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt PHP „Strenge Standards: Deklaration von childClass::customMethod() sollte mit der von parentClass::customMethod() kompatibel sein' aus?

Warum gibt PHP „Strenge Standards: Deklaration von childClass::customMethod() sollte mit der von parentClass::customMethod() kompatibel sein' aus?

Linda Hamilton
Freigeben: 2024-12-09 21:40:15
Original
358 Leute haben es durchsucht

Why Does PHP Throw

Kompatibilität in PHP-Methodendeklarationen

In PHP sollte der Fehler „Strict Standards: Declaration of childClass::customMethod() kompatibel sein mit die von parentClass::customMethod()“ weist auf eine Diskrepanz zwischen der Deklaration einer Methode in einer untergeordneten Klasse und ihrer übergeordneten Klasse hin Methode.

Mögliche Ursachen:

Der Fehler tritt auf, wenn die untergeordnete Methode Folgendes hat:

  • Unterschiedliche Argumente: Die Anzahl, Reihenfolge oder Datentypen der Argumente der Methode sollten mit denen des übergeordneten Elements übereinstimmen Methode.
  • Unterschiedliche Zugriffsebene: Die Zugriffsebene (öffentlich, privat oder geschützt) der untergeordneten Methode muss mit der der übergeordneten Methode identisch oder weniger restriktiv sein.

Kompatibilitätsinformationen finden:

PHP verwendet die folgenden Regeln, um die Methode zu definieren Kompatibilität:

  • Argumente: Argumentdeklarationen müssen sowohl in der Anzahl als auch im Typ übereinstimmen.
  • Zugriffsebene: Der Zugriff auf untergeordnete Methoden kann mehr sein restriktiv (z. B. öffentlich zu privat), aber nicht weniger restriktiv (z. B. privat zu öffentlich).
  • Rückgabetypen:Der Rückgabetyp der untergeordneten Methode kann kovariant sein, was bedeutet, dass er eine Unterklasse des übergeordneten Rückgabetyps zurückgeben kann.

Zusätzliche Dokumentation und Beispiele zur Methodenkompatibilität finden Sie auf den folgenden PHP-Handbuchseiten:

  • [Überladen und Vererbung](https://www.php.net/manual/en/sprache.oop5.overloading.php)
  • [Methodensichtbarkeit](https://www.php.net/manual/en/ language.oop5.visibility.php)
  • [Kovarianz und Kontravarianz](https://www.php.net/manual/en/sprache.oop5.variance.php)

Das obige ist der detaillierte Inhalt vonWarum gibt PHP „Strenge Standards: Deklaration von childClass::customMethod() sollte mit der von parentClass::customMethod() kompatibel sein' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage