$html = <<<HTML
<p>Hello world</p>
HTML;
// equivalent:
$html = "<p>Hello world</p>";
Dies verwendet die PHP string Heredoc syntax, die eine Syntax ist eine Zeichenfolge, ähnlich wie mit einfachen Anführungszeichen und doppelte Anführungszeichen, aber zu entkommen Dinge in einem irgendwie anders zu schreiben. Sie können {}
verwenden, um einige PHP-Strings direkt einzufügen.
<?php
ob_start();
?>
<p>Hello world</p>
<?php
$html = ob_get_clean();
Dies ist eine ganz andere Sache. Es verwendet die PHP output buffering control, um Dinge zu erfassen, die nicht innerhalb PHP-Codeblöcke sind. Wie im Beispiel wird <p>Hello world</p>
außerhalb des PHP-Codeblocks geschrieben, der sofort an den Client ausgegeben werden soll. Bei aktivierter Ausgabepufferung werden sie in PHP in einem Puffer gespeichert, so dass sie später unter Verwendung von ob_get_contents()
oder ob_get_clean()
abgerufen werden können. Wenn Sie PHP-Variablen einfügen müssen, müssen Sie <?=$blah?>
oder sogar <?php echo $blah?>
verwenden.
Einige CMS verwenden die Ausgabepuffersteuerungsfunktionen zum Verwalten von Inhalten und Modulen. Ein Beispiel ist Joomla. Der Vorteil dieses Designs besteht darin, dass das Modul immer dann, wenn das Modul Inhalte in seinem reservierten Bereich platzieren muss, echo
verwenden kann, um den Inhalt verfügbar zu machen. Dies kann den Weg vereinfachen, Inhalte von den Modulen zu erhalten, ohne dass ein spezifischer Funktionsaufruf implementiert oder einer bestimmten Variablen zugewiesen werden muss, wodurch das System leichter zu verwalten ist.
<?php
ob_start();
include dirname(__FILE__)."/content.php";
$content = ob_get_clean();
output_document(array("body"=>$content));
ich auch die Verwendung von Ausgabepufferung Funktionen, wie, dass ich eine Datei auf der Oberseite enthalten kann, und ohne am Ende jeden PHP mit mir einem einfachen Template-System erstellen kann, aber dies ist eine Art Off-Thema.
Ich würde sagen, dass HEREDOCs offensichtlich viel sauberer sind. Es ist auch nicht "verschiedene Möglichkeiten, in den Puffer zu schreiben". HEREDOCs sind eine Art, eine Zeichenkette * zu zitieren. 'ob_' ist ein, wage ich zu sagen, hack, um jede Ausgabe zu erfassen, bevor sie erlischt. – deceze
Vereinbaren Sie mit deceze, die meisten Verwendung von 'ob_ *' Funktionen zeigen auf schlechtes Design. Dann noch einmal HEREDOCs 'View-Layer' in Controller oder Model. –
@MikeB es schreit auch "Hey, gib mir Geld für einen anderen Programmierer!" –