1

PHPでヒアドキュメントをいじってみると、ヒアドキュメントの名前は一意である必要はないことに気づきました。したがって:

$a = <<<EOD
Some string
EOD;

$b = <<<EOD
A different string
EOD;

正しく、期待どおりに動作します。

これは何らかの理由で悪い習慣ですか?EOD名前で参照できないのに、なぜヒアドキュメントに名前/ラベル(上記)が必要なのですか?

4

3 に答える 3

3

指定している文字列に含まれている場合はどうなりますEODか?

文字列として使用しているテキストのチャンクとの競合を回避するために、識別子を選択できます。

于 2010-01-27T00:02:33.463 に答える
2

そのように参照することはありませんが、ヒアドキュメントの終わりを示す識別子として機能します。例えば

$a = <<<EOD
EOA
EOB
EOC
EOD;
于 2010-01-27T00:02:25.710 に答える
1

1つの利点は、vimのようなエディターが、HTML、EOHTML、EOSQL、EOJAVASCRIPTで名前が付けられたヒアドキュメントに構文の強調表示を適用できることです。

$html = <<<EOHTML

<p class="foo">foo</em>

EOHTML;

$sql = <<<EOSQL

SELECT DISTINCT(name) FROM foo ORDER BY bar;

EOSQL;

$js = <<<EOJAVASCRIPT

foo = { bar: 'bar'; }

EOJAVASCRIPT;
于 2010-03-05T19:50:17.863 に答える