蒙国造博客

Nowdoc和Heredoc区别

Nowdoc和Heredoc是PHP中两种不同的字符串处理方式。

Nowdoc就像单引号,不会解析字符块中的变量

Heredoc就像双引号,执行时会解析字符块中的变量

如下的例子:

$foo = 'bar';

// Nowdoc字符块,<<<后的标识要加单引号
$now = <<<'NOW'
    I'm now, $foo!
NOW;

// Heredoc字符块,<<<后的标识不加单引号
$here = <<<HERE
    I'm here, $foo!
HERE;

输出的结果是:

I'm now, $foo!
I'm here, bar!

从结果可以看出,在Nowdoc中$foo变量不会被解析,而Heredoc会被解析成对应的值。

因为Nowdoc不会解析其中的变量,所以适合嵌入PHP代码,或者不需转义的大块字符。

 

参考资料:

  1. Nowdoc and heredoc in PHP
  2. String 字符串

退出移动版