Maison >développement back-end >tutoriel php >Les différences et caractéristiques entre php heredoc et nowdoc

Les différences et caractéristiques entre php heredoc et nowdoc

jacklove
jackloveoriginal
2018-06-09 13:55:081564parcourir

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=&#39;http://blog.csdn.net/fdipzone&#39;>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 = &#39;123&#39;;
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 = &#39;123&#39;;
$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 = &#39;123&#39;;
$content = <<<&#39;FDIPZONE&#39;
$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 = <<<&#39;FDIPZONE&#39;
$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!

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