分かりやすく、使いやすく。

ヒアドキュメントを使って複数行を 1 つの文字列にする

スポンサーリンク

PHP ではヒアドキュメントを使用して複数行の文字列を扱うことができます。ヒアドキュメントは変数を展開するやり方と、展開しないやり方があります。

  1. 変数を展開する場合の書式
  2. 変数を展開しない場合の書式(PHP5.3以降)
  3. 変数を展開する場合のサンプルコード
  4. 変数を展開しない場合のサンプルコード(PHP5.3以降)


変数を展開する場合の書式

ヒアドキュメントの書式は以下の通りです。EOF と言う文字列は、別の任意の文字列でも問題ありません。ただし、2 つの文字列は両方同じものにする必要があります。この記述方法の場合、変数名をヒアドキュメント内に記述すると、変数が展開されます。変数を展開したくない場合 \ を変数の直前に記述すれば、個別に展開しないようにすることは可能です。

php(書式)
1
2
3
4
5
6
7
$str = <<<EOF
ヒアドキュメントでは複数行のテキストを
1つの文字列として扱います。
変数を記述した場合、内容は展開されます。
但し、\ を変数名の直前に記述すれば
変数は展開されません。
EOF; 

変数を展開しない場合の書式(PHP5.3以降)

変数を展開したくない場合は、最初の EOF (任意の文字列)の部分をシングルクオテーションで囲みます。この記述方法は PHP5.3 以降のみ対応しています。

php(書式)
1
2
3
4
5
6
$str = <<<'EOF'
ヒアドキュメントでは複数行のテキストを
1つの文字列として扱います。
最初の文字列をシングルクオテーションで
囲むと変数は展開されません。
EOF; 

変数を展開する場合のサンプルコード

php(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
$str_test = '●変数の値●';
 
$str_here_document = <<<EOF
ここはヒアドキュメントです。
変数を記述すると展開します。
例えばこれ→$str_test
変数を展開したくない場合は、
\を先頭に付けて\$str_testと
記述します。
EOF;
 
echo $str_here_document; 

上記のコードの実行結果は次の通りです。

ここはヒアドキュメントです。
変数を記述すると展開します。
例えばこれ→●変数の値●
変数を展開したくない場合は、
\を先頭に付けて$str_testと
記述します。 

変数を展開しない場合のサンプルコード(PHP5.3以降)

php(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
$str_test = '●変数の値●';
 
$str_here_document = <<<'EOF'
ここはヒアドキュメントです。
変数を記述すると展開しません。
例えばこれ→$str_test
\を先頭に付けると\もそのまま
表示されます→\$str_test
EOF;
 
echo $str_here_document; 

上記のコードの実行結果は次の通りです。

ここはヒアドキュメントです。
変数を記述すると展開しません。
例えばこれ→$str_test
\を先頭に付けると\もそのまま
表示されます→\$str_test 
スポンサーリンク