Verwendung von call_user_function für den Zugriff auf die übergeordnete Methode in PHP

8

Gibt es in PHP eine Möglichkeit, Methoden aus einer Elternklasse mit dem Arbitrary-Argument call_user_func_array aufzurufen? Im Wesentlichen möchte ich ein wenig Code schreiben, der, wenn auch etwas weniger optimal, mich das Eltern zu einer Methode willkürlich wie folgt aufrufen lässt:

%Vor%

Ist das ein merkwürdiger Hack? Ja. Ich werde diesen Textbaustein an vielen Stellen verwenden, wo es wahrscheinlich Fehler gibt, die Methodenargumente korrekt zu transkribieren, so dass der Kompromiss insgesamt weniger Fehler beinhaltet.

    
Joseph Mastey 22.06.2010, 18:17
quelle

2 Antworten

-1

Sie können eine beliebige Methode für eine Elternklasse aufrufen, solange sie nicht näher an die Klasse der Instanz überladen wird. Verwenden Sie einfach $this->methodName(...)

Für etwas mehr fortgeschrittene Magie, hier ist ein funktionierendes Beispiel von dem, was Sie scheinen wollen:

Bitte beachten Sie, dass ich das nicht für eine gute Idee halte

%Vor%

Im Prinzip sucht dies die Methode MathStuff::multiply in der Methodennachschlagtabelle und führt ihren Code für Instanzdaten von einer DangerousCode -Instanz aus.

    
Kris 22.06.2010, 18:35
quelle
20

Probieren Sie eines von

aus %Vor%

oder

%Vor%

... abhängig von Ihrer PHP-Version. Ältere neigen dazu, leicht abzustürzen, vorsichtig:)

    
Denis 'Alpheus' Cahuk 22.06.2010 18:21
quelle

Tags und Links