Mailinglisten-Archive |
Ringo Großer schrieb:
> Hallo Ulf
>
> Im angegebenen Beispiel im Manual werden die $ mit einen Backslash
> escaped. In deinem Beispiel lässt du die Backslashes weg. Ist dies dem
> Unterschied zwischen Strings in einfachen und doppelten
> Anführungszeichen geschuldet?
Ja. Wenn ein $ in einem String begrenzt von doppelten Anführungszeichen
steht, wird eine Variable erwartet, die durch deren Wert ersetzt werden
will. In dem Fall muss das $ maskiert werden.
> Folgendes funktioniert zwar
> printf(gettext('today is %1$s/%2$s/%3$s'), $month, $day, $year);
> sieht aber insgesamt etwas unübersichtlich aus.
>
> Ich hab mir da jetzt nochmal eine eigene Funktion drumherum gebaut, um
> die Parameter im String etwas lesbarer unterzubringen und komfortabler
> übergeben zu können. So etwa in dieser Art:
>
> translate('today is [_0]/[_1]/[_2]', $month, $day, $year);
Ok, jeder wie er will. Allerdings wäre es mir zuviel Aufwand mich noch
um Sonderfälle zu kümmern, z.B. wenn du wirklich mal die
Platzhalter-Syntax im String ausgeben willst. Sowas ist bei den
Standardfunktionen schon berücksichtigt und bekommen bei mir - schon
allein, weil ich mich nicht um die Wartung kümmern muss - den Vorrang.
ciao
ulf
php::bar PHP Wiki - Listenarchive