„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum verstößt das Überschreiben von Methodenparametern in PHP gegen strenge Standards?

Warum verstößt das Überschreiben von Methodenparametern in PHP gegen strenge Standards?

Veröffentlicht am 06.11.2024
Durchsuche:973

Why Does Overriding Method Parameters in PHP Violate Strict Standards?

Ü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 Methodenparametern

Anstatt Methoden mit anderen zu überschreiben Signaturen gibt es alternative Ansätze, um die gewünschte Funktionalität zu erreichen:

    Funktionsüberladung:
  • Definieren Sie separate Funktionen mit demselben Namen, aber unterschiedlichen Signaturen. Dadurch können Sie dieselbe Funktion mit mehreren Definitionen überladen.
  • Vererbung:
  • Erstellen Sie eine neue untergeordnete Klasse, die die übergeordnete Klasse erweitert und zusätzliche Methoden mit bestimmten Signaturen hinzufügt.
  • Zusammensetzung:
  • Verwenden Sie Zusammensetzung anstelle von Vererbung, um die Funktionalität verschiedener Klassen zu kombinieren, ohne deren Methoden zu ändern.
  • Durch Befolgen dieser Alternativen können Sie die Verletzung strenger Standards vermeiden und gleichzeitig erreichen die gewünschte Funktionalität in Ihrer PHP-Anwendung.
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729202656 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

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