So beantworten Sie Ihre Frage direkt: Geben Sie niemals statischen Text oder HTML wieder. Lassen Sie das außerhalb Ihres PHP.
<?php echo "<p>Hello World</p>"; // Alway wrong. ?>
<p>Hello World</p> <!-- Does the same thing, faster, and is more readable. -->
Es ist eine Verschwendung, zu PHP zu flüchten, wenn Sie nur statischen Text oder statisches HTML übergeben. Der gesamte Code innerhalb von <?php ?>
wird zur Interpretation an PHP gesendet. Dies bedeutet, dass Ihre Website langsamer ist und Sie Strom verschwenden, wenn Sie große Mengen statischen Texts ohne Grund an PHP übergeben. (Manchmal gibt es einen Grund.)
Die beste Vorgehensweise ist, dass Ihre Logik und Ihr Grunzen in Dateien ohne HTML, nur mit PHP, funktionieren.
Ich mache das gerne mit einem MVC-Framework. Ich habe reines PHP in den Modellen und Controllern und eine Mischung aus HTML und PHP in den Ansichten. Sie benötigen kein MVC-Framework. Sie könnten einfach Ihre HTML-Mischung in Vorlagendateien einfügen, die Sie dann in Ihre reinen PHP-Dateien einfügen.
Sobald Sie Ihre Variablen (die kein HTML enthalten) in reinen PHP-Dateien erstellt haben, können Sie sie mit Ihrem HTML an die Datei weitergeben. Dort und nur dort ist es in Ordnung, HTML und PHP zu mischen. Aber, und das ist wichtig, aber wenn Sie mit HTML-Dateien arbeiten, sollten Sie PHP auf ein Minimum beschränken.
Zum Glück enthält PHP benutzerfreundliche Tools, die das Lesen von PHP in Kombination mit HTML erleichtern.
Alternative Syntax
Die beste Methode ist, beim Schreiben von reinem PHP die reguläre PHP-Syntax zu verwenden, beim Mischen von PHP und HTML die alternative Syntax.
In normalen PHP-Dateien ohne HTML:
if ($something) {
do_something(); // do_something() shouldn't echo or print.
}
Dies ist schön für reines PHP, aber nicht ideal, wenn Sie HTML verlassen. Insbesondere die schließenden Klammern sind oft schwer zu verstehen, wenn sie in großen Mengen HTML angezeigt werden.
Es scheint, basierend auf Ihrer Frage, dass Sie in einer Datei geschrieben hätten, die HTML und PHP vermischt:
<?php
if ($something) {
echo '<p>Hello World.</p>';
}
?>
Aus den oben beschriebenen Gründen möchten wir, dass der HTML-Code nicht an PHP gesendet wird. Wir machen das so:
<?php if ($something) { ?>
<p>Hello World.</p>
<?php } ?>
Wir haben unseren HTML-Code aus unseren PHP-Tags erhalten, was eine Verbesserung darstellt. Aber wir könnten noch weiter gehen.
Beachten Sie, wie uninformativ die schließende Klammer ist? Wir wissen nicht, ob es eine Schleife oder eine if-Anweisung schließt. Dies scheint im obigen Beispiel trivial zu sein, aber es gibt oft Dutzende von HTML-Zeilen innerhalb von if / endif innerhalb einer Schleife / eines Endloops.
Die beste Vorgehensweise ist, dass Sie in einer Datei, die PHP und HTML mischt, die alternative Syntax verwenden, bei der das Öffnen und Schließen von geschweiften Klammern weggelassen wird ( { }
):
<?php if ($something): ?>
<p>Hello world.</p>
<?php endif; ?>
Abgesehen von der Semantik der neuen Syntax ( :
und endif;
anstelle von {
und }
) sollten Sie zwei Dinge beachten:
- Auch hier befinden sich HTML und Text, obwohl sie von PHP gesteuert werden, außerhalb der
<?php ?>
Tags, sodass sie nicht interpretiert werden. Aus den oben beschriebenen Gründen ist dies gut.
- Dies ist viel informativer, als wenn dies alles PHP wäre, einschließlich zufälliger schließender Klammern (
<?php } ?>
), die Dinge schließen, die schwer zu finden sind, wo sie geöffnet wurden (weil sie mit einem Buch von chaotisch aussehendem HTML gemischt sind). Stellen Sie sich erneut eine große HTML-Datei mit Schleifen und if-Anweisungen vor. Das Angeben, was Sie schließen, kann viel verdeutlichen.
Dieselbe vorlagenfreundliche Syntax kann auch für Schleifen verwendet werden:
<?php foreach ($things as $thing): ?>
<li><?php echo $thing; ?></li>
<?php endforeach; ?>
Kurze Tags
Ein weiteres großartiges Tool von PHP, das Sie ebenfalls nur zum Mischen von PHP und HTML verwenden möchten, sind kurze Tags. Möglicherweise müssen Sie kurze Tags in der Datei php.ini aktivieren. Einmal aktiviert, machen kurze Tags alles noch lesbarer.
Ohne kurze Tags müssen Sie schreiben, <?php echo $something; ?>
aber mit kurzen Tags können Sie schreiben <?=$something?>
und es wird genau das gleiche Ergebnis haben.
Wenn Sie kurze Tags und die alternative PHP-Syntax kombinieren, können Sie wirklich einige elegante HTML-Dateien schreiben, die PHP-Elemente enthalten. In unserem letzten Schleifenbeispiel (nur der Teil innerhalb der Schleife) können wir mit kurzen Tags Folgendes reduzieren:
<li><?php echo $thing; ?></li>
zu
<li><?=$thing?></li>
das ist viel besser lesbar.
Könnten wir noch weiter gehen? Ja. Mit verschiedenen Template-Systemen können Sie folgende Aufgaben ausführen:
<li>{thing}</li>
Welches ist erstaunlich lesbar. Templating-Systeme liegen jedoch weit außerhalb des Rahmens der ursprünglichen Frage (die ich ohnehin vor einiger Zeit gestellt habe).