anonyme Funktion "globale" variable

hpvw

Erfahrenes Mitglied
Ich habe nun neulich von einem netten Forianer die funktion preg_replace_callback nahegelegt bekommen. In dem Fall hatte Sie auch super funktioniert. Und nun habe ich folgendes Problem:
Wie komme ich in einer anonymen Funktion an eine weitere Variable, als an die matches ran bzw. kann ich die weitere Variable mit übergeben?
Der code sieht zur Zeit so aus:
PHP:
function makeElement($templateName,$tprxvars) {

    global $templateDir;
    global $templateExt;
    
    $template = implode("" , file($templateDir.$templateName.$templateExt));
...
...
    $template =  preg_replace_callback("!<\[template (.*)\]>!", create_function(
              '$matches',
              'global $tprxvars; return makeElement($matches[1], $tprxvars);'
          ), $template);

    return $template;
}
In einem anderen Fall würde ich noch gerne $tprxvars[$matches[1]] zurückgeben.
Wenn ich jetzt keine anonyme Funktion nehme, sondern eine weitere Funktion in der Funktion definiere sagt er mir beim zweiten Durchlauf, dass die Funktion bereits definiert ist. Wenn ich sie außerhalb extra definiere, komme ich auch nicht an die Variable ran.
Hat jemand 'ne Lösung?
Danke hpvw
 
Zurück