2010-01-27 17 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文檔使他們更漂亮與...

相關問題