こんにちは。最近、公園で知り合いじゃない子供にあたかも友達のように話しかけられる裕です。
PHP で文書を書くとき、そのまま複数行書きたいことってありますよね?
今回は、そんな時に使えるヒアドキュメントという機能を紹介します。
ヒアドキュメントの書き方
まず下記のように文章を画面に表示したいと思います。
ヒアドキュメントだよ!
ヒアドキュメントだよ!!
ヒアドキュメントだよ!!!
まずはヒアドキュメントを使用しないで記述してみます。
<?php
$str = ‘<p>ヒアドキュメントだよ!</p>’;
$str .= ‘<p>ヒアドキュメントだよ!!</p>’;
$str .= ‘<p>ヒアドキュメントだよ!!!</p>’;
echo $str;
?>
上記の方法は一例ではありますが、変数に連結演算子というの前にある「.」を使って後ろにpタグで作った段落をどんどん足していくことで文章作り改行を行っています。
この方法だと、文章が長くなればなるほど無駄なタグや何度も同じ変数に格納する処理が増えていき冗長的になってしまいますね。
そこで、ヒアドキュメントという方法を使います。
ヒアドキュメントの書き方は以下の通りです。
<?php
変数 = <<< 開始ID
「ここに文字列を書き込む」
終端ID;
?>
開始IDと終端IDは同じ文字を入れてください。
「EOM」はEnd Of Messageの略です。他には「EOD」はEnd OF Document、「EOF」はEnd Of Fileなどがよく使われます。
実際はどのような言葉を使わなくてはいけないという決まりはなく「AAA」などでも同じ言葉で挟んでいればOKです。
ただし大文字と小文字は区別されますので、注意して下さい。
下記は簡単な例です。
<?php
$document = <<< EOM
ヒアドキュメントだよ!<br>
ヒアドキュメントだよ!!<br>
ヒアドキュメントだよ!!!<br>
EOM;
echo $document;
?>
結果は下記のように表示されます。
ヒアドキュメントだよ!
ヒアドキュメントだよ!!
ヒアドキュメントだよ!!!
ヒアドキュメントに変数を使う方法
それでは今度はヒアドキュメントに変数を入れて少し動的な文字列にしてみましょう。
<?php
$str = ‘「文字列を追加したよ」’;
$document = <<< EOM
ヒアドキュメントだよ!<br>
{$str}だよ!!<br>
ヒアドキュメントだよ!!!<br>
EOM;
echo $document;
?>
下記のように表示されます。
ヒアドキュメントだよ!
「文字列を追加したよ」だよ!!
ヒアドキュメントだよ!!!
2行目の{$str}の箇所が文字に変わりましたね。
ヒアドキュメントの中で変数は { } で囲んであげて下さい。
なお{}の中にスペースを入れるとエラーになるので注意して下さい。
ヒアドキュメントの使用例
ここではヒアドキュメントの使用例を紹介します。
<?php
$name=’裕’;
$email=’suguru@sample.com’;
$subject=’ヒアドキュメントについて’;
$message=’ヒアドキュメントの使い方を教えて下さい。’;
$mail = <<<EOM
メールフォームより下記の問い合わせがありました。
=============================================
【お名前】{$name}<br>
<br>
【メール】{$email}<br>
<br>
【件名】{$subject}<br>
<br>
【内容】
{$message}<br>
=============================================
EOM;
echo $mail;
?>
下記のように表示されます。
メールフォームより下記の問い合わせがありました。
=============================================
【お名前】裕
【メール】suguru@sample.com<br>
【件名】ヒアドキュメントについて
【内容】
ヒアドキュメントの使い方を教えて下さい。
=============================================
このように使えばコンタクトフォームのテンプレートなどが簡単に作れてしまいますね。
まとめ
いかがでしたか?
今回は「ヒアドキュメント」について紹介しました。
- ヒアドキュメントの書き方
- ヒアドキュメントに変数を使う方法
これで、複数行の文章をスマートに書くことができます。
ぜひ参考にしてみて下さいね。