2010-02-25 69 views

回答

13

這就是所謂的HEREDOC syntax,這是一種在多行上定義字符串,使用可變插值的方法。


引述手冊頁:

定界符文本表現的就像一個 雙引號字符串,而 雙引號。這意味着heredoc中的引號 不需要被 轉義,但上面列出的轉義碼 仍然可以使用。變量是 已擴展,但在與hellooc中的 字符串一起表示複雜 變量時,必須採用 。

(還有更多的閱讀,我沒有從手冊頁複製粘貼)


而且,作爲一個非常快速和簡單的例子:

$a = 'World'; 
$string = <<<MARKER 
<p> 
    Hello, $a! 
</p> 
MARKER; 
echo $string; 

它會給你這個輸出:

Hello, World! 

d這個HTML源代碼:

<p> 
    Hello, World! 
</p> 
+0

你是什麼意思*「嵌套案件」*? – 2010-02-25 12:14:27

+0

這只是一種定義字符串而不必轉義任何特殊字符的方法。它沒有任何東西,真的,所以這個問題似乎有點奇怪。 – 2010-02-25 12:19:16

+0

僅供參考NOWDOC是新的HEREDOC:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc – 2010-02-25 13:40:19

0

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

塊引用 分隔字符串的第三種方法是定界符:< < <。在這個操作符之後,提供了一個標識符,然後是一個換行符。字符串本身遵循,然後再次使用相同的標識符來關閉引用。

結束標識符必須從行的第一列開始。此外,標識符必須遵循與PHP中任何其他標籤相同的命名規則:它必須僅包含字母數字字符和下劃線,並且必須以非數字字符或下劃線開頭。

0

確實,這是Heredoc語法。

以防萬一你想知道它會不會有什麼興趣VS普通字符串分隔符:

// These strings contain the same thing '"'" 
$s1 = '\'"\'"'; 
$s2 = "'\"'\""; 
$s3 = <<<EOS 
'"'" 
EOS 

沒有更多報價逃逸。
對我來說,一個典型的用例是當我需要將一些HTML代碼複製/粘貼到字符串中時。