Maison >développement back-end >Problème PHP >L'éditeur vous aidera à apprendre le délimiteur. Y a-t-il une différence entre nowdoc et heredoc ?
Dans l'article précédent, nous avons découvert EOF en PHP. Si vous en avez besoin, veuillez lire "Qu'est-ce que l'hérdoc ? Que peut-il faire pour PHP ?" 》. Cette fois, nous allons vous présenter la différence entre nowdoc et heredoc. Vous pouvez vous y référer si nécessaire.
Dans la section précédente, l'éditeur a présenté heredoc à tout le monde, mais il semble que nowdoc n'ait pas été présenté. Mais ce n'est pas le cas. L'éditeur a également présenté nowdoc à tout le monde, mais l'éditeur n'a pas indiqué le terme à tout le monde. Mais jetons un coup d'oeil à nowdoc.
Regardons d’abord un petit marron.
<?php $str = <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. EOD; /* 含有变量的更复杂的示例 */ class foo { public $foo; public $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<'EOT' My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should not print a capital 'A': x41 EOT; ?>
Ce n’est pas évident de cette façon, reprenons l’exemple de l’article précédent et comparons-le.
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>
Regardons ces deux exemples et constatons que la plus grande différence est le mot EOF dans nowdoc, il nécessite des guillemets simples, mais dans heredoc, il n'a pas besoin d'être cité.
C'est la différence que nous ressentons intuitivement. Parlons en détail de la différence entre nowdoc et heredoc.
heredoc utilise l'identifiant 8af4845c36db5df6990a1ea6e1d70251change()}用大括号括起来可以避免一些歧义。如果要按原样输出,可以使用传说中的转义字符 pour les variables PHP dans heredoc. Les caractères d'échappement eux-mêmes peuvent être générés à l'aide de caractères d'échappement. etc. doivent être convertis en sortie définie.
Pour garantir la convivialité, il est recommandé d'utiliser la syntaxe herdoc avec échappement. Depuis 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 rend impossible son utilisation.
Enfin, je tiens à souligner que herdoc a été introduit à partir de php4.0, alors que la syntaxe nowdoc nécessite la version 5.3. Parce que herdeoc contient des fonctions de nowdoc, je suggère d'utiliser herdeoc.
En termes simples :
1. Heredoc est dynamique, tandis que nowdoc est statique
2 Herdoc est similaire aux guillemets doubles multilignes, NewDoc est similaire aux guillemets simples multilignes
3. strings Solution de traitement généraliste, nowdoc est une version statique "efficace" implémentée en PHP, qui compense l'efficacité de l'implémentation dynamique de "Heredoc".
C'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →Tutoriel vidéo php
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!