ざっくりん雑記

プログラミングで忘れそうなことをひたすらメモる

PHP - ヒアドキュメント

複数行にまたがる文字列を出力したいとすると、文字列を連結したり、以下のように

<?php

echo '照りつける 太陽 照り焼けちまいそう\n';
echo 'ハードボイルドだろ? パネェだろ?\n';
echo 'キモい カワイイ 賛否両論 NO MORE WAR\n';
...

echoしまくる感じになるが、ちょっと面倒くさい。

ヒアドキュメントを使う

ヒアドキュメントを用いれば、複数行にまたがる文字列を手軽に書ける。

$str = <<< "EndOfQuote"
照りつける 太陽 照り焼けちまいそう
ハードボイルドだろ? パネェだろ?
キモい カワイイ 賛否両論 NO MORE WAR
サブカル 女子 凝視 酢飯飛び散る
Let's go to the animation
寿司くん!
EndOfQuote;

var_dump($str);

出力

string(260) "照りつける 太陽 照り焼けちまいそう
ハードボイルドだろ? パネェだろ?
キモい カワイイ 賛否両論 NO MORE WAR
サブカル 女子 凝視 酢飯飛び散る
Let's go to the animation
寿司くん!
"

改行も含まれている。

<?php

printf(<<< "Template"
%s is %s.
Template
, "寿司くん", "Sushi");

出力

寿司くん is Sushi.

書き方

<<< [識別子]というトークンが、ヒアドキュメントの開始を示す。 <<<[識別子]の間には半角スペースが1つ必要。文字列を書き終えたら、改行し識別子を示すことで、文字列の終端を示す。

また、PHP 5.3.0 以降では、ヒアドキュメントの宣言をダブルクォートで囲めるようになった。

ダブルクォーテーション、シングルクォーテーション、空白などが素直に出力される。

寿司くん

参考

プログラミングPHP 第3版

プログラミングPHP 第3版

PHP: 文字列 - Manual