echo $begrüßung;
for ($i=1; $i<=20; $i++)
echo sprintf('%02d',$i) . ($i%5 ? '<br>' : ' - ');Noch weitere Angebote?
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 oder der bedingte Teil innerhalb des printf an den Formatstring angefügt werden (was allerdings wegen gesteigerter Kompliziertheit/Unübersichtlichkeit Abzüge in der B-Note gibt).
printf('%02d' . ($i % 5 ? ' - ' : '<br>'), $i);
Außerdem war die Ausgabe-Logik von <br> und - vertauscht.
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.
echo "$verabschiedung $name";