【PHP】複数行の文字列を代入・出力できるヒアドキュメント

公開日:
更新日:
カテゴリー: PHP

PHP(というかプログラミング)では変数を準備してその変数に値を代入してゴニョゴニョしてプログラムしていくのですが、値が複数行に渡る場合変数への代入が面倒なときがあります。

その場合、ヒアドキュメントを使用すれば捗ります。

ヒアドキュメント

例えば、

こんにちは
梅雨の時期で雨がたくさん降っており、外出も億劫になっています。
かといって家の中が快適かというとそうでもありません。湿気によるジメジメ感が地味に不快指数を上げています。
早く梅雨が終わり、からっとした夏が来て欲しいです。
さて、ここではPHPのヒアドキュメントについて説明しています。

という複数行に渡る文章を変数に代入・出力する場合、次のようにしなければなりません。

<?php
//変数に代入
str1 = "こんにちは<br />\n";
str2 = "梅雨の時期で雨がたくさん降っており、外出も億劫になっています。<br />\n";
str3 = "かといって家の中が快適かというとそうでもありません。湿気によるジメジメ感が地味に不快指数を上げています。<br />\n";
str4 = "早く梅雨が終わり、からっとした夏が来て欲しいです。<br />\n";
str5 = "さて、ここではPHPのヒアドキュメントについて説明しています。";
//出力
echo str1;
echo str2;
echo str3;
echo str4;
echo str5;
?>

だいぶややこしく書いていますが、ヒアドキュメントを使用すれば次のようにスッキリした形で文字列を変数に代入できます。

<?php
//変数代入
str = <<< EOF
こんにちは<br />
梅雨の時期で雨がたくさん降っており、外出も億劫になっています。<br />
かといって家の中が快適かというとそうでもありません。湿気によるジメジメ感が地味に不快指数を上げています。<br />
早く梅雨が終わり、からっとした夏が来て欲しいです。<br />
さて、ここではPHPのヒアドキュメントについて説明しています。
EOF;
//出力
echo str;
?>

このように複数行に渡る文字列を一気に処理することをヒアドキュメントといいます。詳細はこちら

ヒアドキュメントの利点

ヒアドキュメントの利点には次の2つがあると思います。

  • 改行文字(\n)を書かなくて良い
  • ダブルクォートやシングルクォートのエスケープ処理が不要

そのため、PHPで広告タグなどのjavascriptコードを出力する際にヒアドキュメントを使用すれば、すっきり簡単にコードを出力できることができます(エスケープ処理忘れでエラーを引き起こすことも少なくなる)。

「EOF」?

ヒアドキュメントに「EOF」を使っていますが、これは「End Of Message」という略でわかりやすいために一般的に使われています。

他には、「EOD(End Of Document)」や「EOF(End Of File)」なども使われています。

特に決まりはなく、自分の好きなものでOKです。

大事なことは、「<<< EOF」で始めた場合「EOF;」という感じに最後はコロンで閉じなければなりません。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント