Im vorherigen Artikel haben wir etwas über EOF in PHP erfahren. Wenn Sie es benötigen, lesen Sie bitte „Was ist Heredoc? Was kann es für PHP tun?“ 》. Dieses Mal stellen wir Ihnen den Unterschied zwischen Nowdoc und Heredoc vor. Sie können bei Bedarf darauf verweisen.
Im vorherigen Abschnitt hat der Herausgeber allen Heredoc vorgestellt, aber es scheint, dass Nowdoc nicht vorgestellt wurde. Dies ist jedoch nicht der Fall. Der Herausgeber hat nowdoc auch allen vorgestellt, aber der Herausgeber hat nicht allen den Begriff erzählt. Aber werfen wir einen Blick auf nowdoc.
Schauen wir uns zunächst eine kleine Kastanie an.
<?php $str = <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. EOD; /* 含有变量的更复杂的示例 */ class foo { public $foo; public $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<'EOT' My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should not print a capital 'A': x41 EOT; ?>
Das ist auf diese Weise nicht offensichtlich. Nehmen wir das Beispiel aus dem vorherigen Artikel und vergleichen wir es.
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>
Schauen wir uns diese beiden Beispiele an und stellen fest, dass der größte Unterschied das Wort EOF ist. In nowdoc sind dafür einfache Anführungszeichen erforderlich, in heredoc jedoch nicht.
Das ist der Unterschied, den wir intuitiv spüren. Lassen Sie uns im Detail über den Unterschied zwischen Nowdoc und Heredoc sprechen.
heredoc verwendet die Kennung <<<, während nowdoc die Kennung <<< verwendet. Unter anderem ist Nowdoc eine neue Technologie, die in PHP5.3 eingeführt wurde. Es enthält die Syntax von herdoc, der Inhalt wird jedoch niemals maskiert oder interpretiert. Was ist der Inhalt? Es wird nicht empfohlen,
für PHP-Variablen in Heredoc zu verwenden. Das heißt, diese Darstellungsmethode, geschweifte Klammern. usw. müssen definierte Ausgaben konvertiert werden.{$name->change()}用大括号括起来可以避免一些歧义。如果要按原样输出,可以使用传说中的转义字符<code>
Um die Benutzerfreundlichkeit zu gewährleisten, wird empfohlen, die Herdoc-Syntax mit Escape zu verwenden. Da die Nowdoc-Syntax in PHP5.3 eingeführt wurde, wird sie möglicherweise von vielen Cloud-Hosting-Umgebungen nicht unterstützt, was ihre Verwendung unmöglich macht.
Abschließend möchte ich betonen, dass herdoc ab PHP4.0 eingeführt wurde, während die Nowdoc-Syntax Version 5.3 erfordert. Da herdeoc Funktionen von nowdoc enthält, schlage ich vor, dass die Verwendung von herdeoc besser ist.
Einfach ausgedrückt:
1. Heredoc ist dynamisch, während Nowdoc statisch ist.
2. Herdoc ähnelt mehrzeiligen einfachen Anführungszeichen.
3 strings Nowdoc ist eine allgemeine Verarbeitungslösung und eine in PHP implementierte „effiziente“ statische Version, die die Effizienz der dynamischen Implementierung von „Heredoc“ ausgleicht.
Das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →
php-Video-TutorialDas obige ist der detaillierte Inhalt vonDer Editor hilft Ihnen beim Erlernen des Trennzeichens. Gibt es einen Unterschied zwischen Nowdoc und Heredoc?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!