Die Frage dreht sich darum, ob eine Funktion wie „ihatefooexamples()“ deklariert und dann innerhalb eines If-Bedingungsblocks „neu deklariert“ werden kann . Im Wesentlichen besteht die Absicht darin, das Verhalten der Funktion zu überschreiben.
Leider lautet die Antwort auf diese spezielle Frage „Nein“. PHP unterstützt das Überschreiben von Funktionen nicht in der in der Frage vorgeschlagenen Weise.
PHP bietet jedoch einen leistungsstarken Mechanismus, der als Polymorphismus durch objektorientierte Programmierung (OOP) bekannt ist. um eine ähnliche Funktionalität zu erreichen. Betrachten Sie den folgenden Code:
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"; } } $foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
In diesem Code:
Diese Technik ermöglicht es uns, das Verhalten einer funktionsähnlichen Methode dynamisch zu ändern, indem wir zur Laufzeit zwischen verschiedenen Implementierungen wechseln und so effektiv eine erreichen Ähnlicher Effekt wie das Überschreiben einer Funktion.
Das obige ist der detaillierte Inhalt vonKann PHP Funktionen wie in anderen Sprachen überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!