Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 11-11-2006, 19:29
der_Behr
 Junior Member
Links : Onlinestatus : der_Behr ist offline
Registriert seit: Jul 2003
Ort: Nürnberg
Beiträge: 78
der_Behr ist zur Zeit noch ein unbeschriebenes Blatt
Question [Funktion] Callback mit Parameter?

Hi, ich mache einige Ersetzungen mittels der Funktion preg_replace_callback(). Die Callback-Funktion sucht aus einem assoziativen Array den richtigen Ersetzungstext und gibt ihn zurück. Nicht weiter tragisch, auch das mit dem OOP-Dingens (array(&$this...)) habe ich mittlerweile hinbekommen.

Allerdings behelfe ich mir im Moment mit zwei Klassenvariablen als Zwischenspeicher, um den richtigen Wert aus dem assoziativen Array zu bekommen.

Komprimiert sieht das so aus:
PHP-Code:
var $bla;
var 
$blubb;

function 
a()
{
  foreach (...) {
    
$bla $key;
    for (...) {
      
$blubb $i;
      
$ersetzt preg_replace_callback('/{([A-Z_\-\.]*)}/s', array(&$this'cb'), $looptpl);
    }
  }
}

function 
cb($backrefs)
{
  return 
$this->arr[$this->bla][$this->blubb][$backrefs[2];

In der Form funktioniert das schon so: Mittels der Klassenvariablen wird die richtige Ersetzung gefunden und ausgeführt. Jetzt kommt das Problem:

Im nächsten Schritt möchte (muss) ich in die Funktion a() Rekursion implementieren - und da kracht es dann, weil die Klassenvariablen überschrieben werden. Lange Rede kurzer Sinn:

Gibt es eine Möglichkeit die zwei Variablen gleich der Callback-Funktion zu übergeben?

Habe dazu leider nirgends etwas finden können, aber die Hoffnung stirbt zuletzt... Dankeschön!
Mit Zitat antworten