Heim  >  Artikel  >  Backend-Entwicklung  >  Der Editor hilft Ihnen beim Erlernen des Trennzeichens. Gibt es einen Unterschied zwischen Nowdoc und Heredoc?

Der Editor hilft Ihnen beim Erlernen des Trennzeichens. Gibt es einen Unterschied zwischen Nowdoc und Heredoc?

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-08-02 10:58:252230Durchsuche

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 = <<<&#39;EOD&#39;
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
/* 含有变量的更复杂的示例 */
class foo
{
    public $foo;
    public $bar;
    function foo()
    {
        $this->foo = &#39;Foo&#39;;
        $this->bar = array(&#39;Bar1&#39;, &#39;Bar2&#39;, &#39;Bar3&#39;);
    }
}
$foo = new foo();
$name = &#39;MyName&#39;;
echo <<<&#39;EOT&#39;
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital &#39;A&#39;: 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 85deef6ca03e8f09c9603d3c02f2d86achange()}用大括号括起来可以避免一些歧义。如果要按原样输出,可以使用传说中的转义字符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-Tutorial

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn