Heim > Artikel > Backend-Entwicklung > Kann ich eine solche Funktion in PHP überschreiben?
In PHP ist es nicht möglich, eine Funktion auf die in der ursprünglichen Frage angegebene Weise zu überschreiben. Es gibt jedoch alternative Wege, um ähnliche Ergebnisse zu erzielen.
Ursprünglicher Ansatz:
function ihatefooexamples() { return "boo-foo!"; }; // Redeclaration if ($_GET['foolevel'] == 10) { function ihatefooexamples() { return "really boo-foo"; }; };
Dieser Ansatz ist nicht durchführbar, da PHP keine Neudefinition von Funktionen damit zulässt Name und Parameter.
Alternativer Ansatz unter Verwendung OOP:
Polymorphismus durch objektorientierte Programmierung (OOP) ist eine bessere Lösung.
Erstellen Sie eine Schnittstelle Fooable und zwei Klassen Foo und FooBar, die sie implementieren.
interface Fooable { public function ihatefooexamples(); } class Foo implements Fooable { public function ihatefooexamples() { return "boo-foo!"; } } class FooBar implements Fooable { public function ihatefooexamples() { return "really boo-foo"; } }
Instanziieren Sie die entsprechende Klasse basierend auf der Narrenebene und rufen Sie die ihatefooexamples auf Methode.
$foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
Durch die Verwendung dieses OOP-Ansatzes können wir das Verhalten der ihatefooexamples-Funktion basierend auf dem Eingabeparameter dynamisch ändern und gleichzeitig die Konsistenz des Funktionsnamens beibehalten.
Das obige ist der detaillierte Inhalt vonKann ich eine solche Funktion in PHP überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!