PHP EOF(heredoc) 使用説明

PHP EOF(heredoc) は、コマンドラインシェル(sh、csh、ksh、bash、PowerShell、zsh など)やプログラミング言語(Perl、PHP、Python、Ruby など)で文字列を定義する方法です。

使用概要:

  • 1. 必ずセミコロンを後ろに付けなければなりません。そうしないとコンパイルが通りません。
  • 2. EOF任意の他の文字で置き換えることができますが、終了識別子と開始識別子が一致していることを保証する必要があります。
  • 3. 終了識別子は必ず行頭に単独で置かなければなりません(つまり行頭から始まり、前後に空白や文字を置くことはできません)。
  • 4. 開始識別子は引用符なし、または一重引用符・二重引用符付きにできます。引用符なしは二重引用符付きと同じ効果で、埋め込まれた変数とエスケープ記号を解釈します。一重引用符付きの場合は、埋め込まれた変数とエスケープ記号を解釈しません。
  • 5. 内容に引用符(一重引用符または二重引用符)を埋め込む必要がある場合、エスケープ文字を追加する必要はありません。それ自体が一重・二重引用符をエスケープします。これは q と qq の使い方に相当します。

例

<?php
echo <<<EOF
<h1>私の最初の見出し</h1>
<p>私の最初の段落。</p>
EOF
;
// 終了は独立した行にする必要があり、前後にスペースを入れてはいけません
?>

注意:

1. 開始マーカーで<<<EOF始まり、終了マーカーでEOF終わります。終了マーカーは必ず行頭に書き、インデントやスペースを入れてはいけません。また、終了マーカーの末尾にはセミコロンが必要です。

2. 開始マーカーと終了マーカーは同じです。例えば通常は大文字のEOT、EOD、EOFを使用しますが、これらに限りません(JSON、HTML なども使用できます)。開始マーカーと終了マーカーが本文中に出現しないようにするだけで十分です。

3. 開始マーカーと終了マーカーの間にある変数は正常に解析されますが、関数は解析されません。heredoc 内では、変数を連結演算子でつなぐ必要はありません。. 或 ,以下のようにします:

例

<?php
$name="サンプル";
$a= <<<EOF
        "abc"$name
        "123"
EOF
;
// 終了は独立した行にする必要があり、前後にスペースを入れてはいけません
echo $a;
?>
その他の拡張