molily: Menschelei: HTML in PHP / PHP in HTML

Beitrag lesen

Hallo!

Dass das "hässlich" ist, weiß ich. Wie kann man so etwas anders umsetzen?

  • Indem man sich nicht wiederholt (Don’t repeat yourself – DRY), sondern eine for-Schleife benutzt, um die option-Elemente zu erzeugen. Grundlage kann eine Datenstruktur, z.B. ein Array mit (assoziativen) Arrays sein. Oder die Schleife zählt einfach Zahlen hoch. Dabei entsteht meist ein HTML-String, den man dann ausgibt.
$selected = 5;  
$html = '';  
for ($i = 1; $i <= 5; $i++) {  
  $html .= '<option value="' . $i . '"' . ($i == $selected ? ' selected' : '') . '>' . $i . "</option>\n";  
}  
echo $html;

Disclaimer: Ich kann kein PHP. Ungetesteter beispielhafter Code.

  • Mit Templating-Sprachen, die das Notieren von Wiederholungen vereinfachen. Sie sorgen auch für das korrekte Escaping von Werten. Ist nicht so hässlich wie das händische Zusammenbauen von Strings (siehe oben).

  • Mit objektorientierter Programmierung. Mit Formular-Widget-Klassen, die eine Datenstruktur entgegennehmen und das entsprechende HTML rendern. PHP-Webframeworks bringen sowas mit sich.

Grüße
Mathias