現在の言語: 日本語

戻る

ヒアドキュメント <<<
出力関連

ヒアドキュメント(<<<)
複数行のHTMLを、クォーテーションの脱出(エスケープ)を気にせずに書くことができます。

[サンプル]

copy
class test1
{
	//<<<'EOD': Nowdoc(変数を展開しない)
	//変数は文字列として、そのまま出力されます。
	function test1():void
	{
		$lang = 0;
		echo <<<'EOD'
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//<<<"EOD" : ヒアドキュメント(変数を展開する)
	function test2():void
	{
		$lang = 0;
		echo <<<"EOD"
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//<<<EOD : ヒアドキュメント(クォーテーションなしは、ダブルクォーテーションと同じ扱い)
	function test3():void
	{
		$lang = 0;
		echo <<<EOD
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//コメントをつける
	function test4():void
	{
		$lang = 0;
		$flg = 1;
		echo <<<EOD
		{$lang /* 言語切替の変数 */}
		<input type=hidden id="lang" value=$lang >
		<input type=hidden id="flg" value={$flg} >
		<!-- lang変数の結果は0に置き換わります -->
		EOD;
	}
}
echo "<pre>";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
$cls1->test3();
$cls1->test4();
echo "</pre>";
copy
class test1
{
	//<<<'EOD': Nowdoc (does not expand variables)
	//Variables are output as strings.
	function test1():void
	{
		$lang = 0;
		echo <<<'EOD'
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//<<<"EOD": Here document (expand variables)
	function test2():void
	{
		$lang = 0;
		echo <<<"EOD"
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//<<<EOD: Here document (no quotes are treated the same as double quotes)
	function test3():void
	{
		$lang = 0;
		echo <<<EOD
		<input type=hidden id="lang" value=$lang >
		EOD;
	}
	//Add a comment
	function test4():void
	{
		$lang = 0;
		$flg = 1;
		echo <<<EOD
		{$lang /* Language switching variable */}
		<input type=hidden id="lang" value=$lang >
		<input type=hidden id="flg" value={$flg} >
		<!-- The result of the lang variable is replaced with 0 -->
		EOD;
	}
}
echo "
";
$cls1= new test1();
$cls1->test1();
$cls1->test2();
$cls1->test3();
$cls1->test4();
echo "
";
[出力結果]


[識別子(ラベル)]
ヒアドキュメントの「<<<」の後に続く文字列
識別子の命名ルール

[使用できる文字]
半角英数字とアンダースコア(_)のみ。

[開始文字]
数字から始めてはいけません(英字またはアンダースコアで始める必要があります)。

[慣習]
一般的には EOD(End Of Document)、EOF(End Of File)、HTML など、
中身が何であるか分かりやすい大文字の英単語がよく使われます。

[注意点]
開始の識別子と終了の識別子は、大文字・小文字も含めて完全に一致させる必要があります。
ヒアドキュメントの内容(本文)の中に、終了識別子と同じ文字列を単独で含めないように注意してください。
意図しない場所で終了したと判定される原因になります。

インデント(PHP 7.3以降)
終了識別子の前にインデント(スペースやタブ)を入れることが可能です。
開始時のインデント量と揃える必要があります。
<!-- lang変数の結果は0に置き換わります -->
HTMLコメントの中にPHPの$から始まる変数を書くとエラーになります。
書き方内容
<<<'EOD' Nowdoc(変数を展開しない)
<<<"EOD"ヒアドキュメント(変数を展開する)
<<<EODヒアドキュメント(クォーテーションなしは、ダブルクォーテーションと同じ扱い)


戻る

著作権情報
ホームページおよびアプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。