あじちゃんの備忘録。

〜ここはメモ帳です

ヒアドキュメントとNowdoc構文の違い

関連記事 http://azix.hatenablog.com/entry/2018/05/08/161047

書き方

  • 違いは、終端IDが「''」で括られているかどうかだけ!
<!-- ヒアドキュメント -->
$text = <<<EOL
ここにテキストを入れます
EOL;
<!-- Nowdoc構文 -->
$text = <<<'EOL'
ここにテキストを入れます
EOL;

違い

  • 出力の結果が変わります
    • 変数が変数として出力されるかどうか。
    • ヒアドキュメント->変数として出力
    • Nowdoc構文->文字列として出力
<!-- [入力]ヒアドキュメント -->
$animal = 'ねこ';
$text = <<<EOL
これはヒアドキュメントです<br>
かわいい生き物:$animal
EOL;

$echo $text;
[出力]
これはヒアドキュメントです
かわいい生き物:ねこ
<!-- Nowdoc構文 -->
$animal = 'ねこ';
$text = <<<'EOL'
これはNowdoc構文です<br>
かわいい生き物:$animal
EOL;

$echo $text;
[出力]
これはNowdoc構文です
かわいい生き物:$animal

使い分けについて

  • 文字列中の特殊文字をそのまま表示したい時にNowdoc構文を使う。それ以外ではヒアドキュメントが無難。(かな)