php heredoc et nowdoc

韦小宝
韦小宝original
2017-12-02 09:05:113183parcourir

Dans le développement de PHP nous utiliserons souvent du HTML, parfois c'est une grande partie du HTML. Il est très gênant d'écrire du HTML directement en PHP je crois que beaucoup. Mes camarades de classe l'ont tous rencontré, alors ne vous inquiétez pas, les délimiteurs heredoc et nowdoc en PHP vont nous aider, alors jetons un œil !

php heredoc et nowdoc

structure hérédoc

structure syntaxique hérédoc : << &Lt ;. Après l'opérateur , fournissez un identifiant puis une nouvelle ligne. Vient ensuite la chaîne elle-même, et enfin l'identifiant défini précédemment est utilisé comme marque de fin. La

<?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;  
?>

structure heredoc ne peut pas être utilisée pour initialiser la propriété d'une 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 aucune opération d'analyse n'est effectuée dans nowdoc . Cette structure est adaptée pour intégrer du code php ou tout autre texte volumineux sans échapper aux caractères spéciaux .

nowdoc a les mêmes balises que la structure hérédoc <<<, mais l'identifiant suivant 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 de classe ou des constantes. 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;  
?>

Ce qui précède est l'intégralité du contenu de PHP heredoc et nowdoc. J'espère que cela pourra être utile à tout le monde.

Recommandations associées :

Les structures Heredoc et Nowdoc dans les chaînes PHP sont-elles couramment utilisées ?

Type scalaire PHP - chaîne, comment Heredoc le représente-t-il ?

À propos de NOWDOC et HEREDOC

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