Tach!
Danke an alle, so viele Antworten. Ich abe mir von jeder etwas rausgepickt und siehe da, man sieht wieder etwas vor lauter Bäumen. Ich habe etwas zu WIRR gedacht:
echo'<li><a '; if ($cat=='plugin') {echo' id="current" ';}
echo'href="index.php?cat=plugin">Plugins</a></li>';
Das Ergebnis sieht mir ein bisschen so aus wie bei politischen Entscheidungen. Das Beste bleibt auf der Strecke und es entsteht ein mehr oder weniger schlechter Kompromiss.
Code muss lesbar für Menschen sein. Auch wenn es technisch möglich ist, alles in eine Zeile zu schreiben, sollte man das nach Möglichkeit nicht tun. Ein paar mehr Leerzeichen schaden auch nicht. Dein jetziger Code einigermaßen ordentlich formatiert ergibt:
~~~php
echo '<li><a ';
if ($cat == 'plugin')
echo ' id="current" ';
echo 'href="index.php?cat=plugin">Plugins</a></li>';
Damit hast du gegenüber der Ausgangsvariante noch nicht viel gewonnen. Und der HTML-Code ist auch zweimal unterbrochen. Schau dir im Vergleich dazu nochmal die Platzhalter-Variante an:
printf('<li><a %s href="index.php?cat=plugin">Plugins</a></li>',
$cat == 'plugin' ? 'id="current"', '');
Das ist wirklich nur noch eine Anweisung, nur aufgeteilt in zwei Zeilen, und das HTML steht einigermaßen zusammenhängend nebeneinander.
dedlfix.