Heim >Backend-Entwicklung >PHP-Tutorial >Was ist der Unterschied zwischen Nowdoc und Heredoc in PHP?

Was ist der Unterschied zwischen Nowdoc und Heredoc in PHP?

怪我咯
怪我咯Original
2017-07-12 09:40:411620Durchsuche

Die

Heredoc-Struktur ist wie eine in doppelte Anführungszeichen gesetzte Zeichenfolge ohne doppelte Anführungszeichen, was bedeutet, dass die einfachen Anführungszeichen in der Heredoc-Struktur nicht maskiert werden. Variablen in seiner Struktur werden ersetzt, aber seien Sie vorsichtig, wenn Sie komplexe Variablen in einer Heredoc-Struktur enthalten. Dies ist nützlicher, wenn Inhalte formatiert und ausgibt. Im Einzelnen weist es die folgenden Merkmale auf:

1. Das Start-Tag und das End-Tag verwenden dieselbe Zeichenfolge, normalerweise in Großbuchstaben geschrieben.

2. Nach dem öffnenden Tag dürfen keine Leerzeichen oder zusätzlichen Zeichen stehen.

3. Das Schluss-Tag muss am Anfang geschrieben werden, ohne Einrückung oder Leerzeichen, und am Ende des Schluss-Tags muss ein Semikolon stehen.

4. Variablen zwischen dem Start-Tag und dem End-Tag können normal analysiert werden, Funktionen jedoch nicht. In Heredoc müssen Variablen nicht mit dem Connector oder gespleißt werden.


Die Nowdoc-Struktur wurde in PHP 5.3.0 und späteren Versionen hinzugefügt. Ihre Verwendung ist die gleiche wie bei Heredoc. Der Unterschied besteht darin, dass die Nowdoc-Struktur einer einfachen Anführungszeichenfolge ähnelt. In nowdoc werden keine Analysevorgänge durchgeführt. Diese Struktur eignet sich zum Einbetten von PHP-Code oder anderen großen Textblöcken, ohne die Sonderzeichen zu maskieren. Ähnlich wie die SGML-Struktur, mit der große Textabschnitte deklariert werden, die nicht analysiert werden müssen, weist auch die Nowdoc-Struktur dieselben Merkmale auf.

Eine Nowdoc-Struktur verwendet ebenfalls die gleichen Tags <<< wie die Heredocs-Struktur, aber der folgende Bezeichner muss in einfache Anführungszeichen gesetzt werden, d. h. <<<'EOT '.


heredoc verwendet die EOT-Kennung <<<, wobei nowdoc eine neue Technologie ist, die in PHP5.3 eingeführt wurde Die Syntax von Heredoc, aber der Inhalt wird niemals maskiert oder in irgendeiner Weise interpretiert. Der Inhalt ist, was er ist, und PHP-bezogene Inhalte werden nicht analysiert.
PHP-Variablen in Heredoc Es wird empfohlen Sie können {$name->change()} in geschweiften Klammern verwenden, um bestimmte Mehrdeutigkeiten zu vermeiden. Wenn Sie unverändert ausgeben möchten, können Sie das Escape-Zeichen selbst verwenden Dies ist die Darstellungsmethode, und geschweifte Klammern und dergleichen müssen maskiert und ausgegeben werden. Um sicherzustellen, dass es verwendbar ist, wird empfohlen, die Heredoc-Syntax zu verwenden, die auch Escapes enthält. Da die Nowdoc-Syntax in PHP5.3 eingeführt wurde, wird sie möglicherweise von vielen Cloud-Hosting-Umgebungen nicht unterstützt, was zu Problemen führt.
Schließlich wurde Heredoc ab PHP 4.0 eingeführt, während die Nowdoc-Syntax Version 5.3 erfordert. Da Heredoc die Funktionen von Nowdoc enthält, schlage ich persönlich vor, dass es besser ist, Heredoc zu verwenden.

Einfach ausgedrückt:

1. Heredoc ist dynamisch, nowdoc ist
statisch2. Heredoc ähnelt mehrzeiligen doppelten Anführungszeichen, newdoc ähnelt multi -zeilige einfache Anführungszeichen. Anführungszeichen
3. Heredoc ist eine allgemeine Verarbeitungslösung, die auf die Verarbeitung großer Zeichenfolgen spezialisiert ist, während nowdoc eine „hocheffiziente“ statische Version ist, die von PHP implementiert wird, um das Effizienzproblem der dynamischen Implementierung von „ hierdoc"

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Nowdoc und Heredoc in PHP?. 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