Heim  >  Artikel  >  Backend-Entwicklung  >  Die Unterschiede und Eigenschaften zwischen PHP Heredoc und Nowdoc

Die Unterschiede und Eigenschaften zwischen PHP Heredoc und Nowdoc

jacklove
jackloveOriginal
2018-06-09 13:55:081480Durchsuche

PHP Heredoc und Nowdoc

Heredoc-Struktur

Heredoc-Syntax Struktur: <<<. Geben Sie nach dem Operator einen Bezeichner und dann eine neue Zeile an. Als nächstes kommt die Zeichenfolge selbst, die mit dem zuvor definierten Bezeichner endet.

<?php
$content = <<<FDIPZONE
<html>
<head>
<title>test</title>
</head>
<body>
<p><img src="http://www.csdn.net/css/logo.png"></p>
<p><a href=&#39;http://blog.csdn.net/fdipzone&#39;>blog</a></p>
</body>
</html>
FDIPZONE;
echo $content;
?>

Die Heredoc-Struktur kann nicht zum Initialisieren von Klasseneigenschaften verwendet werden. Ab PHP 5.3 gilt diese Einschränkung nur, wenn das Heredoc Variablen enthält. Das folgende Beispiel wird schief gehen.

<?php
class test{
public $var = &#39;123&#39;;
public $a = <<<FDIPZONE
$var
FDIPZONE;
}
$obj = new test();
echo $obj->a;
?>

In der Heredoc-Struktur werden Variablen ersetzt, Methoden jedoch nicht. Seien Sie vorsichtig, wenn Sie komplexe Variablen enthalten.

<?php
$var = &#39;123&#39;;
$content = <<<FDIPZONE
$var time();
FDIPZONE;
echo $content; // 123 time();
?>

Nowdoc-Struktur

Nowdoc-Syntaxstruktur ist der Heredoc-Struktur sehr ähnlich, aber in Nowdoc Es wird kein Analysevorgang durchgeführt. Diese Struktur eignet sich zum Einbetten von PHP-Code oder anderen großen Textteilen ohne Escapezeichen für Sonderzeichen.

nowdoc hat die gleichen Tags wie die Heredoc-Struktur <<<, aber der Bezeichner nach muss in einfache Anführungszeichen gesetzt werden , das heißt <<<'EOF'. Alle Regeln für Heredoc-Strukturen gelten auch für Nowdoc-Strukturen, insbesondere die Regeln zum Beenden von Bezeichnern. nowdoc wurde nach php5.3 hinzugefügt.

<?php
$var = &#39;123&#39;;
$content = <<<&#39;FDIPZONE&#39;
$var time();
FDIPZONE;
echo $content; // $var time(); $var没有被替换
?>

nowdoc-Struktur kann in jeder statischen Datenumgebung verwendet werden. Das typischste Beispiel ist die Initialisierung von Attributen oder Konstanten einer Klasse. Mit dem folgenden Beispiel geht nichts schief, Sie können es mit dem Heredoc-Beispiel vergleichen.

<?php
class test{
public $a = <<<&#39;FDIPZONE&#39;
$var
FDIPZONE;
}
$obj = new test();
echo $obj->a;
?>

In diesem Artikel werden die Unterschiede und Merkmale zwischen PHP Heredoc und Nowdoc erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erläuterung zum Inhaltsvergleich von PHP-Zip-Dateien

Über den Unterschied zwischen HTML5 localStorage und sessionStorage

So erhalten/setzen Sie die Sprachklasse der Benutzerzugriffsseite über PHP

Das obige ist der detaillierte Inhalt vonDie Unterschiede und Eigenschaften zwischen PHP Heredoc und Nowdoc. 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