LoginSignup
2
3

More than 3 years have passed since last update.

PHP基礎構文 ヒアドキュメントとNowdocの構文と違いについて

Posted at

TL;DR

  • 基礎構文の1つでもあるヒアドキュメントNowdocの構文に関して
  • 基本的にヒアドキュメントで事足りる印象
  • 適切さでいうと、変数展開を利用しないのであれば、Nowdocを利用すべきなのかもしれない

ヒアドキュメントとは

文字列を変数に代入、または出力するために利用する機能
機能の特徴柄、主に長い文字列の代入・出力のために利用する事が一般的な利用方法

ヒアドキュメント構文

$text = 'hello';
echo <<< EOL
input text.
{$text}
EOL;

/*
 * 出力結果
 *
 * input text.
 * hello
 */

Nowdoc構文

$text = 'hello';
echo <<< 'EOL'
input text.
{$text}
EOL;

/*
 * 出力結果
 *
 * input text.
 * {$text}
 */

構文の違い

1. エンドトークンにクォートがついてるかどうか

  • ついてるのが、ヒアドキュメント
  • ついていないのが、Nowdoc

エンドトークンとは

  • EOLなどの特定の文字列を指す
  • 例文に利用してるEOL以外にも下記ものも利用できる
    • EOD
      • End Of Documentの略
    • EOF
      • End Of Fileの略
    • EOS
      • End Of Sentenceの略
    • EOT
      • End Of Textの略
    • EOL
      • End Of Lineの略

※利用するエンドトークンは同じである必要がある。
例えば、開始のエンドトークンにEOL、終わりのエンドトークンにEOD、などは利用できない

2. 変数展開ができるかどうか

  • できるのが、ヒアドキュメント
  • できないのが、Nowdoc
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3