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='http://blog.csdn.net/fdipzone'>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 = '123'; 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 = '123'; $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 = '123'; $content = <<<'FDIPZONE' $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 = <<<'FDIPZONE' $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!