🙄

PHP ヒアドキュメント構文

2022/03/01に公開

はじめに

PHPでの文字列リテラルは、4つの方法で指定することができますが、
そのうちのヒアドキュメント構文について記述します。

ヒアドキュメント構文とは

文字列を区切る別の方法としてヒアドキュメント構文 ("<<<") があります。この場合、ある ID (と、それに続けて改行文字) を <<< の後に指定し、文字列を置いた後で、 同じ ID (終端ID) を括りを閉じるために置きます PHPマニュアル

例文

これはテスト文章です。
これもテスト文章です。
それもテスト文章です。

例えば上記のような文字列を出力したい、htmlで表示したい場合、
通常のechoで記述すると、

echo "これはテスト文章です。\n これもテスト文章です。\nそれもテスト文章です。"

と改行コードを入れないと改行されません。

ヒアドキュメントであれば、

echo <<<EOM
	これはテスト文章です。
	これもテスト文章です。
	それもテスト文章です。
        EOM; //終了のこの文字列と、出だしの文字列を統一させる。
	//ちなみにこの文字はなんでも良いらしい。EOMはよく使われる。(End Of Messageの略)

と記述することで、改行コードなく、出力されるものに近い形で入力することができます。スペースも同様に反映されます。

変数埋め込み

また変数も埋め込むことができるので、

$a = "テスト文章です。";
echo  <<<EOM
これは$a
これも$a
それも$a
EOM;

で、例文と同様の表示になります。
また、

$test = <<<EOM

上記のようにして、echoで出力するだけでなく、変数に入れることも可能です。

if文などはは使えない

変数を埋め込むことはできますが、if文などの構文は埋め込むことができないようです。

さいごに

学習の際に見てはおりましたが、実際に使用することがなかったので忘れておりました。
長い文章を出力しなければならない時は便利そうです。

Discussion