ヒアドキュメント
当ページのリンクには広告が含まれています。
ここではPHPスクリプトの「ヒアドキュメント」について解説します。
「ヒアドキュメント」は長い文字列を変数に代入したり、出力する場合に使います。PHPスクリプトからHTMLを出力する場合などに便利なので手法なので、覚えておきましょう。
ヒアドキュメント
長い文字列を変数に代入する場合は以下のような書式で記述します。
<?php $変数 = <<<終了の文字列 「文字列を記述」 終了の文字列; ?>
※ 終了の文字列には大文字のアルファベットを使います。よく見かけるのは「EOM」「EOF」「EOD」ですが、「ABC」でも何でも構いません。 ちなみに「EOM」は End Of Message、「EOF」は End Of File、「EOD」は End Of Document の略です。
サンプルスクリプト
それではヒアドキュメントのサンプルスクリプトをみてみましょう。まずは長い文字列を変数に格納するサンプルスクリプトです。
<?php $str = <<<EOM 変数に ながーーーーい文字列を 格納します。 EOM; echo $str; ?>
実行結果です。変数に格納された長い文字列が出力されていますね。
変数に ながーーーーい文字列を 格納します
次は長い文字列をそのまま出力する書式をみてみましょう。変数に格納するところが「echo」に変わるだけです。
<?php echo <<<終了の文字列 「文字列を記述」 終了の文字列; ?>
それではサンプルスクリプトをみてみましょう。
<?php echo <<<EOF 出力する ながーーーーい文字列を 記述します。 EOF; ?>
実行結果は以下のようになります。
出力する ながーーーーい文字列を 記述します。
ヒアドキュメント内での「エスケープシーケンス(特殊文字)」と「変数」の挙動を確認するサンプルスクリプトです。
<?php $str_name = "太郎"; echo <<<ABC ヒアドキュメント\nです。 こんにちは。$str_name だよ。 ABC; ?>
実行結果です。このようにヒアドキュメント内の特殊文字と変数は展開され、値が表示されます。
ヒアドキュメント です。 こんにちは。太郎 だよ。
次は特殊文字と変数を展開しない「Nowdoc(Newdoc)」をみてみましょう。