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の略
- EOD
※利用するエンドトークンは同じである必要がある。
例えば、開始のエンドトークンにEOL、終わりのエンドトークンにEOD、などは利用できない
2. 変数展開ができるかどうか
- できるのが、ヒアドキュメント
- できないのが、Nowdoc