2010-01-27 57 views
1

在PHP中使用heredocs时,我意识到heredoc的名称不一定是唯一的。因此:Heredocs - 两次使用相同的名字?为什么要命名它们?

$a = <<<EOD 
Some string 
EOD; 

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

是正确的,其行为与您预期的完全一致。

由于任何原因,这是不好的做法?为什么heredoc根本就需要名称/标签(上面的EOD),因为您不能通过名称引用它?

回答

3

如果您指定的字符串包含EOD,该怎么办?

您可以选择标识符以避免与作为字符串使用的文本块发生冲突。

+1

正是上班。那么你使用了一个不是EOD的分隔符。请注意,heredocs的结尾必须从该行的第一个字符开始,这有助于提高特异性。 另请注意,替代文本不会扫描heredoc终止符 - 这意味着您可以简单地扫描一次代码以解决这个简单的错误,并且知道您还没有完成。 – 2010-01-27 00:05:07

2

你不参考它是这样的,但它作为一个标识符以指示所述端的定界符的。例如

$a = <<<EOD 
EOA 
EOB 
EOC 
EOD; 
0

一个好处是,像vim编辑器可以应用语法高亮与HTML,EOHTML,EOSQL,EOJAVASCRIPT命名here文档使他们更漂亮与...

相关问题