Der php.net RFC-Kanal hat die Heredoc- und Nowdoc-Syntaxaktualisierungen für PHP 7.3 angekündigt. Dieses Update konzentriert sich auf die Lesbarkeit des Codes:
Heredoc und Nowdoc haben Eine sehr strenge Syntax, die viele Entwickler manchmal dazu veranlasst, sie zu meiden, weil sie im Code sehr hässlich aussieht und den Code weniger lesbar macht. Um dieses Problem zu beheben, werden mit diesem Update die folgenden zwei Änderungen an der Syntax vorgenommen:
unterstützt das Einrücken schließender Tags.
Erzwingt nicht mehr den Umbruch von schließenden Tags;
Aus der aktuellen Implementierung von PHP 7.2, wie in diesem einfachen Beispiel:
<?php class foo { public $bar = <<<EOT bar EOT; }
in Version 7.3, ist die folgende Form verfügbar:
<?php class foo { public $bar = <<<EOT bar EOT; }
Die Einrückung des schließenden Tags bestimmt die Anzahl der Leerzeichen pro neuer Zeile in Heredoc/Nowdoc:
<?php // 4 个缩进空格 echo <<<END a b c END; /* a b c */
In der aktuellen Implementierung von PHP 7.2 muss eine neue Zeile vorhanden sein, um Heredoc/Nowdoc zu beenden. PHP 7.3 entfernt diese Einschränkung:
<?php stringManipulator(<<<END a b c END); $values = [<<<END a b c END, 'd e f'];
Nowdoc wird ab PHP 5.3.0 unterstützt. Der einzige Unterschied zwischen ihm und Heredoc sind doppelte und einfache Anführungszeichen in Anführungszeichen. Nowdoc fügt einfache Anführungszeichen um das Start-Tag ein und es erfolgt keine Analyse:
<?php $name = 'Example'; $str = <<<'EOD' Example of string $name spanning multiple lines using nowdoc syntax. EOD;
Das obige Nowdoc gibt Folgendes aus:
Example of string $name spanning multiple lines using nowdoc syntax.
Hier Dokumentdefinition im Wiki:
In der Informatik ist ein Here-Dokument, auch Heredoc, Hereis, Here-String oder Here-Script genannt, eine Dateieingabe oder Datenstromeingabe: ein Codeblock, der als vollständige Datei behandelt werden kann. Es kann Leerzeichen wie Zeilenumbrüche oder Einzüge im Text speichern. Einige Sprachen ermöglichen die Variablenersetzung und Befehlsersetzung innerhalb von Zeichenfolgen.
Verbesserungen in Heredocs und Nowdocs machen Ihren PHP-Code lesbarer und fehleranfälliger. Andererseits ist die Ausgabe prägnanter und direkter, da die Einrückung, die das Markup schließen würde, entfernt wird.
Es wird empfohlen, das offizielle Änderungsdokument zu lesen – flexible Heredoc- und Nowdoc-Syntaxen RFC. Offizielle PHP-Dokumentation Heredoc und Nowdoc.