長い文字列をそのまま出力するヒアドキュメント(heredoc) – PHP
ヒアドキュメント(heredoc)
長い文字列を変数に代入したり、出力する場合につかう。sql文を変数に格納したり、メールのテンプレート文など改行を含んだ長い文字列を格納するときに便利。
1 2 3 4 5 6 7 8 |
$sql= <<<EOF insert into users( name, pass ) values ( 'TANAKA TARO', 'passw0rd' ); EOF; echo $sql; // 出力 insert into users( name, pass ) values ( 'TANAKA TARO', 'passw0rd' ); |
また、ヒアドキュメントのなかで変数や特殊文字を展開することもできる。
1 2 3 4 5 6 7 8 9 10 |
$name = "田中"; echo <<<EOF こんにちは。$name さん。\n 今日は暖かいですね。 EOF; // 出力 こんにちは。田中 さん。 今日は暖かいですね。 |
大文字3文字で「EOF(End Of File)」「EOM(End Of Message)」「EOD(End Of Document)」などが慣習的に使われるが、<<<{TEXT}〜{TEXT}; の形になっていれば小文字でも何文字でもよい。また、最後のEOF;の前に空白を入れてはいけない。
ナウドック(nowdoc)・ニュードック(newdoc)
よく似たものにnowdoc(またはnewdoc)がある。こちらは変数や特殊文字を展開しない。
1 2 3 4 5 6 7 8 9 |
$name = "田中"; echo <<<'EOF' こんにちは。$name さん。\n 今日は暖かいですね。 EOF; // 出力 こんにちは。$name さん。\n 今日は暖かいですね。 |
スタートのEOFが’EOF’とシングルクオートで囲むところが違う。
コメント
コメントはありません。