2011-04-04 169 views
7

可能重複:
Reference - What does this symbol mean in PHP?
PHP <<<EOB<<< END在PHP中表示什麼?

我試圖神交在下面的代碼使用完:

$javascript_autocomplete_text = <<<END 
<script type="text/javascript"> 
    function split(val) { 
     return val.split('\\n'); 
    } 
</script> 
+1

oops沒有heredoc。所以,這裏有十幾個相同的答案 – 2011-04-04 14:10:31

+0

謝謝,但我沒有發現在該鏈接中的<<<或END。 – Jacko 2011-04-04 14:12:55

+0

我已將您的問題,鏈接副本和三個附加內容添加到了Reference中。 – Gordon 2011-04-04 14:22:57

回答

11

Heredoc syntax

第三種劃分方法string s是heredoc語法:< < <。在這個操作符之後,提供了一個標識符,然後是一個換行符。 string本身遵循,然後再次相同的標識符來關閉報價。

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

警告需要注意的是,結束標識符的行必須包含沒有其他字符,除了分號這是非常重要的(;)。這意味着特別是標識符可能不會縮進,分號前後可能沒有空格或製表符。認識到關閉標識符之前的第一個字符必須是由本地操作系統定義的換行符也很重要。在UNIX系統(包括Mac OS X)上,這是\ n。結束分隔符後面還必須跟有一個換行符。

如果這個規則被破壞,並且結束標識符不是「乾淨」,它將不被視爲結束標識符,PHP將繼續尋找一個。如果在當前文件結束之前未找到適當的結束標識符,則最後一行會出現分析錯誤。

Heredocs不能用於初始化類屬性。由於PHP 5.3,這個限制是僅適用於包含變量here文檔...