PHP ヒアドキュメント関連

「EOD」や「EOF」とかで囲まれたヤツら。

作成日:2019-07-06, 更新日:2019-07-06

基本

インデントが無茶苦茶になってソースが見づらくなるから好きじゃない・・・

・「<<<」の後に「任意の文字列」で始める
・最初に使った「任意の文字列」に「;」を追加して終わらせる。

▼サンプル

<<<EOD
〇〇〇
EOD;

※上記では「EOD」だが何でも良いっぽい(ダメな文字列があるかもしれない)

よく使われる文字列

・EOM(End Of Message)
・EOD(End Of Document)
・EOF(End Of File)

ヒアドキュメントを使った場合と使わない場合

出力させるサンプル

▼ヒアドキュメントを使って出力した場合

echo <<<EOD
鳥精
豚精
丸ごとシマウマ
EOD;

▼ヒアドキュメントを使わない場合

echo '鳥精' ."\n";
echo '豚精' ."\n";
echo '丸ごとシマウマ' ."\n";

変数に入れる場合

▼ヒアドキュメントで変数にいれる場合

$hoge = <<<EOD
鳥精
豚精
丸ごとシマウマ
EOD;

▼ヒアドキュメントを使わない場合

$hoge = '鳥精' ."\n"
      . '豚精' ."\n"
      . '丸ごとシマウマ' ."\n";

ヒアドキュメント内で変数を使う

・「{}」で囲む

$foo = '砂肝';

$hoge = <<<EOD
鳥精
豚精
丸ごとシマウマ
{$foo};
EOD;

ヒアドキュメント内で関数を使う

そのままだとムリ。ひと手間必要。

クラスを作ってメソッドとして呼び出す

class clsHoge {
  function func01() {
    return 〇〇〇;
  }
}

$objHoge = new clsHoge();

$hoge = <<<EOD
鳥精
豚精
丸ごとシマウマ
{$objHoge->func01()}
EOD;

可変変数を使う

▼「echo number_format(〇〇〇);」をヒアドキュメントで使う

$func = 'number_format';
$arg = 123456789;

echo <<<EOD
{$func($arg)}
EOD;

あらかじめ変数にしておく

$hoge = number_format(123456789);

echo <<<EOD
{$hoge}
EOD;