Maison  >  Article  >  Nouvelles fonctionnalités de PHP7.3 : des structures syntaxiques flexibles heredoc et nowdoc seront introduites

Nouvelles fonctionnalités de PHP7.3 : des structures syntaxiques flexibles heredoc et nowdoc seront introduites

无忌哥哥
无忌哥哥original
2018-07-12 10:43:192761parcourir

Nouvelles fonctionnalités de PHP7.3 : des structures syntaxiques flexibles heredoc et nowdoc seront introduites

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 :

  1. prend en charge l'indentation des balises de fermeture

  2. 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'];

Contexte de Heredoc et Nowdoc

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.

Pour plus d'informations

Il est recommandé de lire le document de modification officiel - RFC flexible Heredoc et Nowdoc Syntaxes. Documentation officielle PHP Heredoc et Nowdoc.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn