Mailinglisten-Archive |
Hallo Ulf Ulf Seltmann wrote: > Das stimmt nicht. Sowie bei printf() als auch bei sprintf() lässt sich > die Reihenfolge der Platzhalter bestimmen. Das geht auch aus der > PHP-Manual hervor [1]. > So wäre der Platzhalter '%1$d' immer das erste Argument nach dem > angegebenen String. Mehrfachverwendung geht natürlich auch: > printf('First comes %1$s then %2$s, and not first %2$s and then > %1$s','foo','bar'); > > oder hab ich was falsch verstanden? 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? 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); Trotzdem vielen Dank für deinen Hinweis. regards, Ringo
php::bar PHP Wiki - Listenarchive