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 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。