Maison >développement back-end >tutoriel php >Les différences et caractéristiques entre php heredoc et nowdoc
php heredoc et nowdoc
structure hérédoc
syntaxe hérédoc Structure : ≪≪≪. Après l'opérateur, fournissez un identifiant puis une nouvelle ligne. Vient ensuite la chaîne elle-même, se terminant par l'identifiant défini précédemment.
<?php $content = <<<FDIPZONE <html> <head> <title>test</title> </head> <body> <p><img src="http://www.csdn.net/css/logo.png"></p> <p><a href='http://blog.csdn.net/fdipzone'>blog</a></p> </body> </html> FDIPZONE; echo $content; ?>
La structure hérédoc ne peut pas être utilisée pour initialiser les propriétés de classe. Depuis PHP 5.3, cette restriction s'applique uniquement lorsque l'hérdoc contient des variables. L'exemple suivant tournera mal.
<?php class test{ public $var = '123'; public $a = <<<FDIPZONE $var FDIPZONE; } $obj = new test(); echo $obj->a; ?>
Dans la structure héréditaire, les variables seront remplacées, mais pas les méthodes. Soyez prudent lorsque vous contientz des variables complexes.
<?php $var = '123'; $content = <<<FDIPZONE $var time(); FDIPZONE; echo $content; // 123 time(); ?>
structure nowdoc
la structure syntaxique de nowdoc est très similaire à la structure heredoc, mais dans nowdoc Aucune opération d'analyse. Cette structure convient pour intégrer du code PHP ou d’autres gros morceaux de texte sans échapper aux caractères spéciaux.
nowdoc a les mêmes balises que la structure héréditaire <<<, mais l'identifiant qui suit doit être placé entre guillemets simples , c'est-à-dire <<<'EOF'. Toutes les règles des structures heredoc s'appliquent également aux structures nowdoc, en particulier les règles de terminaison des identifiants. nowdoc a été ajouté après php5.3. La structure
<?php $var = '123'; $content = <<<'FDIPZONE' $var time(); FDIPZONE; echo $content; // $var time(); $var没有被替换 ?>
nowdoc peut être utilisée dans n'importe quel environnement de données statiques. L'exemple le plus typique est d'initialiser des attributs ou des constantes d'une classe. L'exemple suivant ne vous trompera pas, vous pouvez le comparer avec l'exemple héréditaire.
<?php class test{ public $a = <<<'FDIPZONE' $var FDIPZONE; } $obj = new test(); echo $obj->a; ?>
Cet article explique les différences et les caractéristiques entre php heredoc et nowdoc Pour plus de contenu connexe, veuillez faire attention au site Web chinois de php.
Recommandations associées :
Explication sur la classe de comparaison du contenu des fichiers zip php
À propos du stockage local HTML5 et de la différence de stockage de session
Comment obtenir/définir la classe de langue de la page d'accès utilisateur via 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!