Christian Seiler: callfunction mit parameter by reference

Beitrag lesen

Hallo Lena,

Leider wird das & in der Funktionsdeklaration ignoniert, die Variable also nur in Funktion geändert, nicht im "Hauptprogramm".

Ja, weil Deine Funktion selbst zwar die Variable als Referenz akzeptiert, array_walk aber nicht.

In Deinem konkreten Fall hast Du aber eine viel einfachere Möglichkeit, als eine Extra-Funktion und array_walk:

$line = str_replace (array_keys ($toreplace), array_values ($toreplace), $line);

str_replace akzeptiert (genauso wie übrigens z.B. auch preg_replace) nämlich auch Arrays (siehe PHP-Handbuch).

Für andere Fälle musst Du halt wirklich foreach nehmen oder array_walk mit Referenzparameter nachprogrammieren.

Viele Grüße,
Christian