簡體   English   中英

Heredoc和結束標簽問題

[英]Heredoc and closing tags issue

情況1:

<?php    
echo <<<"FOOBAR"
Hello World!
FOOBAR;

情況2:

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>

我對heredoc的使用有疑問。 我發現一些奇怪的行為,可以對此做出解釋。

當我嘗試案例1時,我沒有收到“ Hello World!” 輸出打印。 相反,我看到以下解析錯誤。

Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in C:\xampp\htdocs\test\index.php on line 5

但是,在第2種情況下,我看到它正確打印了文本“ Hello World!”。

當我刪除第2種情況下的結束標記並添加一條額外的行時,也是如此。

任何人都可以解釋該行為及其原因嗎?

你是對的

check說明:-請務必注意,帶有結束標識符的行除分號(;)外,不得包含其他任何字符。 特別是這意味着標識符可能不會縮進,並且在分號之前或之后可能沒有任何空格或制表符。

同樣重要的是要認識到,結束標識符之前的第一個字符必須是本地操作系統定義的換行符。 在包括Mac OS X在內的UNIX系統上,這是\\ n。結束定界符也必須后跟換行符。

如果該規則被破壞,並且結束標識符不是“干凈的”,它將不會被視為結束標識符,PHP將繼續尋找一個。 如果在當前文件末尾之前找不到合適的結束標識符,則將在最后一行產生解析錯誤

更多檢查
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM