Corredor

ウェブ、プログラミングの勉強メモ。

PHP でヒアドキュメントを書く

コレまで色々な言語でのヒアドキュメントの書き方を紹介してきた。

PHP でもヒアドキュメントが書けるので紹介。

echo でもヒアドキュメントチックなことができる

$name = 'Neo';

echo "こんにちは
はじめまして $name さん
どうぞ
よろしく";

↑ コレはヒアドキュメントではないが、PHP はクォートの中で改行しても文章が書ける。

ダブルクォートを使っていれば変数が展開される。変数はスペースで区切ることで認識される。

  • はじめまして$name さん → スペースで区切っているので変数 $name を探してくれる
  • × はじめまして$nameさん$nameさん という変数と扱われてしまう

このように、変数の後ろはスペースを入れていないと正しく認識されない。

スペースを入れたくない場合は文字列結合 (ピリオド .) を使う。

$name = 'Neo';

echo "こんにちは
はじめまして" . $name . "さん
どうぞ
よろしく";

こんな感じ。

なお、シングルクォートを使っていた場合は、はじめまして $name さん と変数展開されずに表示される。

ヒアドキュメント

$name = 'Neo';

echo <<<EOL
こんにちは
はじめまして $name さん
どうぞ
よろしく
EOL;

↑ コレがヒアドキュメント。コチラも変数の後ろをスペースで区切っていれば変数展開される (変数の手前はスペースがなくても大丈夫)。

変数の後ろにスペースを入れずに書くには、ブレース {} で変数を囲むと良い。{$name} と書くワケだ。

$name = 'Neo';

echo <<<EOL
こんにちは
はじめまして{$name}さん
どうぞ
よろしく
EOL;

他に PHP 5.3.0 からは Nowdoc という構文も使えるようになった。 <<<EOL 部分は本来 <<<"EOL" (ダブルクォート) とも書けるのだが、コレを <<<'EOL' とシングルクォートにすると Nowdoc 構文になる。ヒアドキュメントとの違いは、変数展開がされないということ。

以上。

よくわかるPHPの教科書 【PHP7対応版】

よくわかるPHPの教科書 【PHP7対応版】