のぐそんブログ

暗いおじさんがシコシコ書くブログです。

PHPのヒアドキュメントやNowdocのメモ

複数行にまたがる文字列を扱うときに便利なヒアドキュメントやNowdoc。 EOMは他の文字でもOK(開始と終了が同じ文字なら)。 よく使われるのがEOM(End Of Message)みたい。

ヒアドキュメント

変数を展開することができます。

<?php
$name = '鈴木一郎';

$str = <<<EOM
<p>
こんにちは。<br>
私の名前は{$name}です。
</p>
EOM;
echo $str;
?>

// こんにちは。
// 私の名前は鈴木一郎です。

Nowdoc

開始文字(EDM)をシングルクォーテーションで囲みます。 変数は展開されずそのまま表示されます。

<?php
$name = '鈴木一郎';

$str = <<<'EOM'
<p>
こんにちは。<br>
私の名前は{$name}です。
</p>
EOM;
echo $str;

// こんにちは。
// 私の名前は{$name}です。
?>

Nowdocは変数が展開できない為、定数として定義する事ができます。

<?php
$name = '鈴木一郎';

const str = <<<'EOM'
<p>
こんにちは。<br>
私の名前は{$name}です。
</p>
EOM;
echo str;

// こんにちは。
// 私の名前は{$name}です。
?>