Schau dir das an:
<?php
echo "Hello World";
?>
<br />
<?php
echo "Welcome";
?>
Und jetzt sieh dir das an:
<?php
echo "Hello World";
echo "<br />";
echo "Welcome";
?>
Welches der oben genannten Beispiele wird als besser angesehen (zumindest in Bezug auf die Leistung)?
Ich weiß, dass die Beispiele trivial sind, aber ich möchte von Anfang an die Gewohnheiten der guten Praxis befolgen. Wenn ich also mehr und mehr Zeilen habe, würden sie die Leistung oder was auch immer nicht negativ beeinflussen.
web-development
php
html
vorschnell
quelle
quelle
Antworten:
Wie bereits erwähnt, sollte dies anhand von Vorlagen erfolgen. Aber wenn nur Ihre zwei Wahl möglich ist. Fall 1 wird besser sein. Dies ist das gleiche Konzept wie das Aufblasen des Layouts von Android durch XML oder das programmatische Erstellen der Benutzeroberfläche. Sie
<br/>
sind ein statischer Inhalt aus Ihrem HTML-Code und Ihr Server wird ihn nur anzeigen. Aber wenn Sie PHP verwenden, um es auszuführen, wird dies Ihre Serverressourcen beanspruchen und rechnen.So sollte es gemacht werden: index.php:
header.html und footer.html sind Vorlagen.
quelle
So beantworten Sie Ihre Frage direkt: Geben Sie niemals statischen Text oder HTML wieder. Lassen Sie das außerhalb Ihres PHP.
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:
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:
Aus den oben beschriebenen Gründen möchten wir, dass der HTML-Code nicht an PHP gesendet wird. Wir machen das so:
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 (
{ }
):Abgesehen von der Semantik der neuen Syntax (
:
undendif;
anstelle von{
und}
) sollten Sie zwei Dinge beachten:<?php ?>
Tags, sodass sie nicht interpretiert werden. Aus den oben beschriebenen Gründen ist dies gut.<?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:
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:
zu
das ist viel besser lesbar.
Könnten wir noch weiter gehen? Ja. Mit verschiedenen Template-Systemen können Sie folgende Aufgaben ausführen:
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).
quelle
short_open_tag
Direktive immer aktiviert ist. PHP 5.4 macht das immer<?=$thing?>
verfügbar, auch wennshort_open_tag
es deaktiviert ist. Außerdemshort_open_tag
ist standardmäßig deaktiviert, um Konflikte mit XML zu vermeiden.<?php $foo='ABC'; echo '<div>', $foo, '</div>'
und<?php $foo='ABC'; ?><div><?=$foo?></div>
führen zu exakt den gleichen Opcodes, dh sie sind identisch.<li>{$thing}</li>
wie Sie es gezeigt haben, mit dem Vorteil gegenüber doppelten Anführungszeichen, dass Sie den doppelten Anführungszeichen darin nicht entkommen müssen. Sie können heredoc auch zuweisen oder an Funktionen übergeben, so ist es viel sauberer, dass PHP / HTML, wenn Sie es in Blöcken verwenden, z.array_reduce($items, function($s, $item) { $name = htmlspecialchars($item['name']); return $s . <<< EOT <li>{$name}: {$item['price']}</li> EOT; })
Sie lernen, vergessen Sie die Leistung in PHP-Seiten. Wählen Sie stattdessen die Art und Weise, die am einfachsten zu lesen ist .
Wenn Sie sich Ihre beiden Beispiele ansehen, ist das zweite definitiv am einfachsten zu lesen, obwohl ich denke, dass dies an dem Abstand liegt, den Sie verwendet haben. Sie sagen, Sie möchten von Anfang an gute Gewohnheiten entwickeln. Ich denke, Sie können Ihre Zeit besser damit verbringen, dass Sie Ihren Code gut lesen. Dies kann bedeuten, dass Sie einen Abschnitt mehrmals umschreiben, bis Sie damit zufrieden sind.
Wenn Sie wirklich hinter die Kulissen schauen möchten, erkläre ich Ihnen, was mit statischen Inhalten auf einer PHP-Seite passiert. Eines der ersten Dinge ist das "Parsen" der gesamten Seite in ausführbaren Code (wie Sie zwischen
<?php ?>
Tags sehen). Ein Teil davon ist, statischen Text in einen zu verwandelnecho
.Also das:
verwandelt sich in etwas wie:
Das Parsen ist mit sehr geringen Kosten verbunden, es gibt jedoch keinen Unterschied bei der Ausführung des resultierenden Codes. Wenn Sie einen PHP-Beschleuniger verwenden, wird das Parsen nur einmal durchgeführt und dann zwischengespeichert, sodass Sie nach dem Laden der ersten Seite keinen Leistungsunterschied feststellen können.
Denken Sie daran: leicht zu lesen!
quelle
echo
, wenn Sie das wörtlich meinen (was Ihre Sprache impliziert). Das Ergebnis ist das gleiche, aber die Methoden sind sehr unterschiedlich. Was Sie als "statischen Text" bezeichnen, verschwindet tatsächlich von PHP nach HTML. In diesem Fall sendet der Server Rohtext. Es wird nicht wie bei PHP analysiertecho
. Die Auswirkungen auf die Leistung sind unter nicht erfundenen Umständen wahrscheinlich gering, aber der mechanistische Unterschied ist wichtig.Eine der besten Eigenschaften von PHP war, dass es in HTML eingebettet werden kann. Es wird normalerweise beim Erstellen von Vorlagen verwendet. Es erleichtert das Lesen und Verwalten Ihres Codes, da es den PHP-Code von HTML trennt.
Aber wenn Sie nur eine statische Seite wie "Hello World!" Es ist eine schlechte Idee.
quelle
Um Ihre Frage einfach zu beantworten: In Anbetracht Ihres Beispielcodes wird es kaum einen Unterschied in der Leistung geben. PHP wird auf Server- / Host-Ebene verarbeitet, während HTML vom Benutzeragenten / der Person verarbeitet wird, die Ihre Webseite in ihrem Browser betrachtet. Wer wird schneller sein? Schwer zu bestimmen.
Ich stimme anderen zu und sage, dass jeder seine Stärken und Schwächen hat und wirklich gut zusammenarbeiten kann. PHP ist programmierbar und kann Berechnungen durchführen und mit Variablen arbeiten. Aus diesem Grund sind alle meine Seiten PHP und rufen, wie erwähnt, Ausschnitte von HTML-Code-Vorlagen auf und fügen Variablen ein, damit mein HTML dynamisch wird.
In Ihrem Beispiel könnten Sie den HTML-Code wie folgt zu einer PHP-Anweisung zusammenfügen:
Hoffe das hilft ein wenig zu klären.
quelle
Es gibt Einschränkungen bei der Verwendung von HTML in PHP.
Die meiste Zeit würden Sie Ihr HTML draußen haben. Sie würden eine Seite so erstellen, als ob Sie nicht PHP verwenden würden, und dann das PHP in die Bereiche des Dokuments einfügen, in denen Sie es benötigen. Sie können mehrere Teile von PHP in einem Dokument haben.
quelle
Es wird allgemein als schlechte Form angesehen, HTML-Code von PHP auszugeben. Dafür gibt es mehrere Gründe, aber der Hauptgrund ist, dass es insbesondere auf lange Sicht einfacher ist, Code zu verwalten, wenn HTML- und PHP-Code getrennt sind.
Es ist wie HTML, CSS und Javascript. Es ist viel einfacher und praktischer, es getrennt zu halten.
Technisch macht es jedoch absolut keinen Unterschied, wie Sie Sachen ausgeben. Für PHP sind es nur Bytes in einer Reihe.
quelle
<?php echo 'hello'; ?>
wird an PHP übergeben.hello
wird nicht an PHP übergeben. Alles, was an PHP übergeben wird, wird in Bytecode konvertiert und dann interpretiert. Dies kostet Zeit, Rechenleistung und Strom.