1.增加了可讀性和可維護性,Heredoc是引用字符串的一個很好的替代方案。你不必轉義引號,IDE或文本編輯器將使用正確的語法突出顯示。
2.重複引用的字符串,這些字符串最終包含轉義引號,IDE不會突出顯示該語言的語法,這會導致可讀性差,維護難度更大。
這裏的文檔語法對我來說比較乾淨,對於多行字符串和避免引用問題非常有用。我用來構建SQL查詢:
$sql = <<<SQL
select *
from $tablename
where id in [$order_ids_list]
and product_name = "widgets"
SQL;
對我來說,引入語法錯誤的概率比使用引號的要低:
$sql = "
select *
from $tablename
where id in [$order_ids_list]
and product_name = \"widgets\"
";
另一點是避免在字符串中引用雙引號:
$x = "The point of the \"argument" was to illustrate the use of here documents";
詳細解讀:
String 字符串
一個字符串 string 就是由一系列的字符組成,其中每個字符等同於一個字節。這意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。詳見字符串類型詳解。
Note: string 最大可以達到 2GB。
語法
一個字符串可以用 4 種方式表達:
- 單引號
- 雙引號
- heredoc 語法結構
- nowdoc 語法結構(自 PHP 5.3.0 起)
Heredoc 結構
第三種表達字符串的方法是用 heredoc 句法結構:<<<。在該運算符之後要提供一個標識符,然後換行。接下來是字符串 string 本身,最後要用前面定義的標識符作爲結束標誌。
結束時所引用的標識符必須在該行的第一列,而且,標識符的命名也要像其它標籤一樣遵守 PHP 的規則:只能包含字母、數字和下劃線,並且必須以字母和下劃線作爲開頭。