Maison  >  Article  >  développement back-end  >  Quelle est la différence entre nowdoc et heredoc en php ?

Quelle est la différence entre nowdoc et heredoc en php ?

怪我咯
怪我咯original
2017-07-12 09:40:411594parcourir

La

structure Heredoc est comme une chaîne entre guillemets doubles, ce qui signifie que les guillemets simples ne sont pas échappés dans la structure heredoc. Les variables de sa structure seront remplacées, mais soyez prudent lorsque vous contientz des variables complexes dans une structure héréditaire. C'est plus utile lorsque formate et produit du contenu. Plus précisément, il présente les caractéristiques suivantes :

1. La balise de début et la balise de fin utilisent la même chaîne, généralement écrite en majuscules.

2. Aucun espace ou caractère supplémentaire ne peut apparaître après la balise d'ouverture.

3. La balise fermante doit être écrite au début, sans indentation ni espaces, et il doit y avoir un point-virgule à la fin de la balise fermante.

4. Les variables entre la balise de début et la balise de fin peuvent être analysées normalement, mais les fonctions ne le peuvent pas. Dans Heredoc, les variables n'ont pas besoin d'être épissées avec le connecteur ou .


La structure nowdoc est ajoutée dans PHP 5.3.0 et les versions ultérieures. Son utilisation est la même que celle d'heredoc. La différence est que la structure Nowdoc est similaire à une chaîne de guillemets simples. Aucune opération d'analyse n'est effectuée dans nowdoc. Cette structure est adaptée pour intégrer du code PHP ou d'autres gros blocs de texte sans échapper aux caractères spéciaux. Semblable à la structure SGML, qui est utilisée pour déclarer de grandes sections de texte qui n'ont pas besoin d'être analysées, la structure nowdoc possède également les mêmes caractéristiques.

Une structure nowdoc utilise également les mêmes balises <<< que la structure heredocs, mais l'identifiant suivant doit être placé entre guillemets simples, c'est-à-dire <<<'EOT. '.


heredoc utilise l'identifiant <<< tandis que nowdoc utilise l'identifiant <<< la syntaxe de heredoc, mais le contenu ne sera jamais échappé ou interprété de quelque manière que ce soit, et le contenu lié à PHP ne sera pas analysé
Variables PHP dans heredoc Il est recommandé. pour utiliser {$name->change()} entre accolades, ce qui peut éviter certaines ambiguïtés. Si vous souhaitez afficher tel quel, vous pouvez utiliser le caractère d'échappement légendaire. Le caractère d'échappement lui-même peut utiliser escape. Il s'agit de la méthode de représentation, et les accolades et autres doivent être échappées et affichées. Afin de garantir son utilisation, il est recommandé d'utiliser la syntaxe heredoc, qui comporte également des échappements. Étant donné que la syntaxe nowdoc a été introduite dans PHP5.3, de nombreux environnements d'hébergement cloud peuvent ne pas la prendre en charge, ce qui entraîne des problèmes.
Enfin, heredoc a été introduit à partir de PHP 4.0, alors que la syntaxe nowdoc nécessite la version 5.3. Parce que heredoc inclut les fonctions de nowdoc, je suggère personnellement qu'il est préférable d'utiliser heredoc.

En termes simples :

1. Heredoc est dynamique, nowdoc est
statique2 Heredoc est similaire aux guillemets doubles multilignes, newdoc est similaire à multi. -line guillemets simples. Guillemets
3. Heredoc est une solution de traitement générale spécialisée dans le traitement des grandes chaînes, tandis que nowdoc est une version statique "très efficace" implémentée par PHP pour compenser le problème d'efficacité de l'implémentation dynamique de " hérdoc"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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