Hallo,
echo sprintf() lässt sich allgemein durch printf() zusammenfassen. Gut, in dem Fall müsste dann noch ein zweites echo mit dem bedingten Teil folgen ...
genau, und deshalb habe ich alles in eins zusammengefasst.
printf('%02d' . ($i % 5 ? ' - ' : '<br>'), $i);
Außerdem war die Ausgabe-Logik von <br> und - vertauscht.
Damn, erwischt.
Das liegt am Modulo-Operator. In Gedanken lese ich $i%5 nämlich, wenn ich nicht aufpasse, als "ist $i durch 5 teilbar?" und nicht als "Divisionsrest von $i/5". Dieser Fehler passiert mir immer wieder. Fällt aber meistens beim ersten Testen auf. ;-)
Noch eine Klitzekleinigkeit: Möchte man mehrere Dinge mit echo ausgeben, kann man diese durch Komma statt Punkt getrennt dem echo übergeben. Die Ausdrücke werden dann sofort nach ihrer Berechnung ausgegeben ohne dass sie erst noch durch die Stringkonkatenation zu einem großen String zusammengebaut werden müssen, der nichts weiter als ausgegeben und danach verworfen wird.
Sehr guter Einwand, danke. Mir war nicht klar, dass nach einem echo mehrere durch Komma getrennte Ausdrücke folgen können; ich bin immer nur von einem ausgegangen.
Ciao,
Martin
Wer im Glashaus sitzt, sollte sich nur im Dunkeln ausziehen.