Überschreiben von Methodenparametern in PHP: Eine Verletzung strenger Standards
Bei der objektorientierten Programmierung schreibt das Liskov Substitution Principle (LSP) dies vor Die Objekte eines Untertyps können ihre übergeordneten Objekte ersetzen, ohne das Verhalten des Programms zu ändern. In PHP gilt das Überschreiben einer Methode mit einer anderen Parametersignatur jedoch als Verstoß gegen strenge Standards.
Warum handelt es sich um einen Verstoß?
PHP ist schwach typisiert Dies bedeutet, dass der Compiler zur Kompilierungszeit den genauen Typ einer Variablen nicht bestimmen kann. Dies bedeutet, dass der Compiler nicht überprüfen kann, ob die neue Signatur mit dem Original kompatibel ist, wenn eine untergeordnete Klasse eine Methode einer übergeordneten Klasse überschreibt kann dazu führen, dass das Programm abstürzt.
Betrachten Sie das folgende Beispiel:class Foo { öffentliche Funktion bar(array $bar) {} } Klasse Baz erweitert Foo { öffentliche Funktion bar($bar) {} }
class Foo
{
public function bar(array $bar) {}
}
class Baz extends Foo
{
public function bar($bar) {}
}
Alternativen zum Überschreiben von MethodenparameternAnstatt Methoden mit anderen zu überschreiben Signaturen gibt es alternative Ansätze, um die gewünschte Funktionalität zu erreichen:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3