Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Methode-callback

Wie kann ich innerhalb einer Klasse die preg_replace_callback-Funktion verwenden? Dabei will ich eine Methode als Funktion verwenden, also z.B. $this->methode. Aber das scheint nicht zu klappen.

Hier gehts zum Orginal Eintrag "Methode-callback" im Forum

Antworten

Die Doku schweigt sich tatsächlich darüber aus, wie man Methoden als Callback-Funktion benutzen kann. Ich habe aber etwas gefunden, das funktionieren sollte:

Eine Methode wird entweder beschrieben als

array($klassenName, $methodenName)

oder als

array(&$object, $methodenName)


Dieses Konstrukt wird direkt in [doc]preg_replace_callback[/doc] als Callback eingetragen.

Die erste Variante ruft die Methode statisch im Kontext der Klasse auf, beide Parameter sind Strings. Die zweite Variante ruft die Methode im Kontext des übergebenen Objekts auf, das "&"-Zeichen ist dabei wichtig, damit keine Kopie von dem Objekt angelegt wird. In Deinem Beispiel wäre es also etwas wie

Code:                   In Zwischenablage kopieren (nur IE)
1">

Dieses Vorgehen funktioniert auch für [doc]array_map[/doc] und vielleicht auch für andere Funktionen, die eine Callback-Funktion erwarten.


2.

Danke oimel! Das haut hin!


Hier gehts zum Orginal Eintrag "Methode-callback" im Forum
 
phpforum.de | Impressum | Handy Bundles