意外と出番が多いような気がするヒアドキュメント。PHPからHTMLを出力する場合などに便利☹

ヒアドキュメントとは?

ヒアドキュメントは、文字列リテラルを、シェルスクリプトやプログラミング言語のソースコード中に埋め込むための1つの方法である。

ヒアドキュメント – Wikipedia

らしい。

なんか難しいですが、長い文字列を変数に代入したり、出力する場合に使うものだと認識しています。

基本書式

PHP

<?php
$hoge = <<< 終了の文字列
 
ここに文字列を記載する
 
終了の文字列;

echo $hoge;
?>

※ 終了の文字列には大文字のアルファベットを使う。

EOM|EOF|EOD

上記をよく見ますが、実際は「ABC」でも「HOGE」でも何でも良い。ちなみに、下記がそれぞれの略。

  • 名称
  • EOM
  • End Of Message
  • EOF
  • End Of File
  • EOD
  • End Of Document

普通に使う

PHP

<?php
$msg = <<< EOM
<div>this eom message.</div>
EOM;

echo $msg;
?>

出力結果

this eom message.

組み合わせて使う

ヒアドキュメント内でエスケープシーケンス(特殊文字)変数を扱うことも可能。

PHP

<php
$hoge = '変数の中身';
$eod = <<< EOD
<pre>
これはヒアドキュメント。\n <= は改行。
変数「hoge」の中身は「 $hoge 」です。
</pre>
EOD;

echo $eod;
?>

出力結果

これはヒアドキュメント。
 <= は改行。
変数「hoge」の中身は「 変数の中身 」です。

※ヒアドキュメント内の特殊文字と変数は展開される。

参考

PHP: 文字列 – Manual

ヒアドキュメント – Wikipedia