Le canal RFC php.net a annoncé les mises à jour de la syntaxe Heredoc et Nowdoc pour PHP 7.3. Cette mise à jour se concentre sur la lisibilité du code :
Heredoc et Nowdoc ont. une syntaxe très stricte, qui pousse parfois de nombreux développeurs à l'éviter car elle semble très moche dans le code, rendant le code moins lisible. Pour résoudre ce problème, cette mise à jour apporte les deux modifications suivantes à la syntaxe :
prend en charge l'indentation des balises de fermeture
Ne force plus le retour à la ligne ; de balises de fermeture ;
À partir de l'implémentation actuelle de PHP 7.2, comme cet exemple simple :
<?php class foo { public $bar = <<<EOT bar EOT; }
dans la version 7.3, les formulaires suivants sont disponible :
<?php class foo { public $bar = <<<EOT bar EOT; }
L'indentation de la balise de fermeture détermine le nombre d'espaces par nouvelle ligne dans heredoc/nowdoc :
<?php // 4 个缩进空格 echo <<<END a b c END; /* a b c */
en PHP Dans l'implémentation actuelle de 7.2, une nouvelle ligne doit exister pour mettre fin à un heredoc/nowdoc. PHP 7.3 supprime cette contrainte :
<?php stringManipulator(<<<END a b c END); $values = [<<<END a b c END, 'd e f'];
Nowdoc est pris en charge à partir de la version PHP 5.3.0. La seule différence entre Heredoc et Heredoc réside dans les guillemets doubles. La différence avec. guillemets simples. Nowdoc ajoute des guillemets simples autour de la balise de début, et il n'y a pas d'analyse :
<?php $name = 'Example'; $str = <<<'EOD' Example of string $name spanning multiple lines using nowdoc syntax. EOD;
Le nowdoc ci-dessus affichera :
Example of string $name spanning multiple lines using nowdoc syntax.
Ici, la définition du document sur le wiki :
En informatique, un document here, également connu sous le nom d'hérdoc, hereis, here-string ou here-script, est une entrée de fichier ou une entrée de flux de données : un bloc de code qui peut être traité comme un fichier complet. Il peut enregistrer des caractères d'espacement tels que des sauts de ligne ou des retraits dans le texte. Certains langages autorisent la substitution de variables et la substitution de commandes dans les chaînes.
Les améliorations apportées à Heredocs et Nowdocs rendront votre code PHP plus lisible et plus sujet aux erreurs. D'un autre côté, le résultat est plus concis et direct car l'indentation qui fermerait le balisage est supprimée.
Il est recommandé de lire le document de modification officiel - RFC flexible Heredoc et Nowdoc Syntaxes. Documentation officielle PHP Heredoc et Nowdoc.