はじめに
業務でヒアドキュメントを使うことがあったのでその際に調べたことを簡単にまとめます。
環境
PHP 8.1.7
ヒアドキュメント
ヒアドキュメントはPHPで文字列を扱う方法のうちの1つです。
「'」や「"」で囲って文字列を扱うことが多いですが、ヒアドキュメントという形式で文字列を扱うこともできます。
ヒアドキュメントでは「<<<」のあとに任意のIDを指定し、文字列を置いた後でさらに「<<<」のあとに指定したID(終端ID)を置いて閉じることで文字列を定義します。
echo <<<EOM
Hello
World
EOM;
ヒアドキュメントで調べると「EOF」や「EOM」がIDで書かれていることが多いですが、ルールに沿っていれば任意のものを設定できます。ルールについては章末に記載しています。
上記のコードでは下記のように出力されます。
Hello
World
また、終端IDは通常のコードと同様に半角スペース、タブでインデントすることができます。(PHP 7.3.0からの仕様)
echo <<<EOM
Hello
World
EOM;
Hello
World
終端IDをインデントする際の注意点としては、上記の出力例のように終端IDのインデントした分が文字列本体の全ての行から削除されます。
ヒアドキュメントの主なルール
- 最初のIDと終端IDは同じである必要がある
- 英数字およびアンダースコアのみを含み、 数字でない文字またはアンダースコアで始まる必要がある。
- 文字列本体、終端ID間でスペース、タブを混ぜてはいけない。
- 文字列本体にスペース、タブを混ぜてはいけない。
- 終端IDにスペース、タブを混ぜてはいけない。