Tach!
Markup (HTML-Tags) nicht mit
echo
ausgeben. Nicht HTML in PHP schachteln, sondern andersrum: PHP in HTML, d.h. nur die Daten mit PHP ausgeben.
Da fehlt noch die Begründung. Während bei echo '<p>Text</p>';
der Text lediglich ein String ist, ist es bei ?><p>Text</p><?php
vom Editor erkennbarer HTML-Code. Es stehen dann alle angebotenen sprachspezifischen Unterstützungen zur Verfügung. Andererseits gibt es mittlerweile auch IDEs, die Code in Text erkennen können und Unterstützung dafür bieten.
Dabei sollten im Ausgabeteil keine geschweiften Klammern auftreten,
Da fehlt ein "meiner Meinung nach".
sondern die alternative Syntax für Kontrollstrukturen verwendet werden. Die Gründe dafür kannst du dieser Diskussion mit Dem Martin entnehmen.
Im verlinkten und den anschließenden Postings sehe ich nur einen Grund, die angebliche Unterbrechung von Blöcken.
<?php if ($bedingung) { ?>
<p>Text</p>
<?php } ?>
<?php if ($bedingung): ?>
<p>Text</p>
<?php endif; ?>
Wo ist da der Unterschied? Wird im zweiten Fall der Block etwa nicht unterbrochen? Im ersten Fall findet wenigstens der Klammernpaarmechanismus im Editor noch das Gegenstück. Ich finde das Argument nicht überzeugend.
dedlfix.