php heredoc と nowdoc

韦小宝
韦小宝オリジナル
2017-12-02 09:05:113184ブラウズ

PHPの開発ではHTMLを頻繁に使用しますが、PHPでHTMLを直接記述するのは非常に不便です。心配しないでください。 の区切り文字 heredoc と nowdoc が役立つので、見てみましょう。

phpヒアドキュメントとnowdoc

ヒアドキュメント構造

ヒアドキュメント構文構造: <<<。

演算子

の後に識別子を指定し、次に改行を指定します。次に string 自体が続き、最後に前に定義した識別子が終了マークとして使用されます。

<?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;  
?>
heredoc 構造体を使用してクラスの

プロパティ

を初期化することはできません。 PHP 5.3 以降、この制限はヒアドキュメントに変数が含まれている場合にのみ適用されます。次の例は失敗します。

<?php  
class test{  
  
public $var = &#39;123&#39;;  
  
public $a = <<<FDIPZONE  
$var  
FDIPZONE;  
  
}  
  
$obj = new test();  
echo $obj->a;  
?>
ヒアドキュメント構造では、変数は置き換えられますが、メソッドは置き換えられません。複雑な変数を含める場合は注意してください。

<?php  
$var = &#39;123&#39;;  
$content = <<<FDIPZONE  
$var time();  
FDIPZONE;  
  
echo $content; // 123 time();  
?>

nowdoc 構造nowdoc 構文構造はヒアドキュメント構造と非常によく似ていますが、nowdoc では解析操作は実行されません。この構造は、

特殊文字

をエスケープせずにphpコードやその他の大きなテキストを埋め込むのに適しています。 nowdoc にはヒアドキュメント構造 <<< と同じタグがありますが、次の識別子は一重引用符で囲む必要があります (例: <<<'EOF')。ヒアドキュメント構造のすべての規則、特に識別子の終端に関する規則は、nowdoc 構造にも適用されます。 nowdoc は php5.3 以降に追加されました。

<?php  
$var = &#39;123&#39;;  
$content = <<<&#39;FDIPZONE&#39;  
$var time();  
FDIPZONE;  
  
echo $content; // $var time(); $var没有被替换  
?>

nowdoc 構造体は、あらゆる静的データ環境で使用できます。最も典型的な例は、クラス プロパティまたは

定数

を初期化することです。次の例は間違いではありません。ヒアドキュメントの例と比較してください。

<?php  
class test{  
  
public $a = <<<&#39;FDIPZONE&#39;  
$var  
FDIPZONE;  
  
}  
  
$obj = new test();  
echo $obj->a;  
?>
以上がPHPヒアドキュメントとnowdocの全内容です。皆様のお役に立てれば幸いです。

関連する推奨事項:

PHP 文字列の Heredoc 構造と Nowdoc 構造は一般的に使用されますか?

PHP スカラー型 - 文字列、ヒアドキュメントはそれをどのように表現しますか?

NOWDOCとHEREDOCについて

以上がphp heredoc と nowdocの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。