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.
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)
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!