Verstehen des Fehlers „Deklaration von Methoden sollte mit übergeordneten Methoden kompatibel sein“ in PHP
Bei der Arbeit mit objektorientierter Programmierung in PHP müssen Sie Möglicherweise tritt der Fehler „Strenge Standards: Die Deklaration von childClass::customMethod() sollte mit der von parentClass::customMethod() kompatibel sein.“ auf. Dieser Fehler weist darauf hin, dass die Deklaration einer Methode in einer untergeordneten Klasse mit der Deklaration der entsprechenden Methode in ihrer übergeordneten Klasse übereinstimmen muss.
Mögliche Ursachen:
Der Fehler kann aus zwei Hauptgründen auftreten:
-
Argumentkonflikt: Die Methode in der untergeordneten Klasse hat andere Eingabeparameter (Argumente) als die übergeordnete Methode. Dazu gehören Unterschiede in der Anzahl, Art oder Reihenfolge der Argumente.
-
Diskrepanz der Zugriffsebene: Die Zugriffsebene (öffentlich, privat oder geschützt) der Methode in der untergeordneten Klasse ist nicht vorhanden das gleiche wie das der übergeordneten Methode. Beispielsweise kann eine in der übergeordneten Klasse als „öffentlich“ deklarierte Methode in der untergeordneten Klasse nicht als „privat“ deklariert werden.
Kompatible Methodendeklaration:
Um die Kompatibilität sicherzustellen, sollte die Deklaration einer Methode in der untergeordneten Klasse in folgenden Aspekten mit der Deklaration in der übergeordneten Klasse übereinstimmen:
- Eingabeparameter (Anzahl, Typ, Reihenfolge)
- Rückgabetyp
- Zugriffsebene
Dokumentation und Ressourcen:
- [Offizielles PHP-Handbuch: Methodenüberladung](https: //www.php.net/manual/en/sprache.oop5.overloading.php)
- [PHPStan: Basic Level Method Compatibility](https://phpstan.org/user-guide/rules/methods /basic-method-compatibility)
- [Stack Overflow: Was bedeutet die „Deklaration der Methode class::method sollte mit der von parentClass::method kompatibel sein“?](https://stackoverflow.com /questions/2194559/what-does-the-declaration-of-method-classmethod-should-be-compatible-with-that)
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „Deklaration von Methoden sollten mit übergeordneten Methoden kompatibel sein“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme: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