PHP中的多行字符串的几种方法
使用 PHP,有时候需要定义一个多行的字符串,比如 html、xml等数据。以下总结以下几种方法。
1. 单引号
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
2. 双引号
结合换行符 \n
。
echo "You can also have embedded newlines in \nstrings this way as it is\nokay to do";
3. Heredoc 结构
使用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string
本身,最后要用前面定义的标识符作为结束标志。
Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义,但是上文中列出的转义序列还可以使用。变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。
$str = <<<EOD
line1
line2
line3
EOD;
echo $str;
4. Nowdoc 结构
一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。
就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;