这里的doc语法对我来说更干净,它对于多行字符串和避免引用问题非常有用。回到那一天,我习惯使用它们来构造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";
上面的问题是语法错误(缺少转义报价)我刚刚介绍,而不是这里的文档语法:
$x = <<
The point of the "argument" was to illustrate the use of here documents
EOF;
这是一种风格,但我使用以下作为单,双和这里的文档定义字符串的规则:
>当字符串是一个常量,如’no variables here’时使用单引号>双引号时,我可以把字符串放在一行,需要变量插值或嵌入单引号“今天是$ {user}的生日”>这里是需要格式化和可变插值的多行字符串的文档。