+
67
-

回答

在PHP中,当我们需要写很长的多行字符串(比如一段HTML代码或SQL语句)时,用普通的引号会很麻烦。这时就可以用到 HeredocNowdoc

它们最核心的区别可以用一句话概括:Heredoc 像“双引号”,Nowdoc 像“单引号”。

1. Heredoc(会“解析”变量)

写法:<<<标识符

特点:它会识别字符串里的变量,并把变量替换成具体的值。也会解析转义字符(如 \n)。

例子

$name = "张三";
echo <<<EOT
你好,$name!
EOT;
// 输出:你好,张三!

适用场景:当你需要在长文本里动态插入变量时。

2. Nowdoc(完全“原样输出”)

写法:<<<'标识符' (注意:标识符被单引号包裹,这是它与Heredoc唯一的语法区别)

特点:它不会解析其中的任何变量。你写什么,它就原样输出什么。

例子

$name = "张三";
echo <<<'EOT'
你好,$name!
EOT;
// 输出:你好,$name!

适用场景:当你需要输出一大段纯文本,或者是一段本身就包含大量 $ 符号的代码,且不希望PHP去乱动它时。

总结:

Heredoc:聪明,能认出变量(类似 "")。

Nowdoc:死板,写啥出啥(类似 '')。

网友回复

我知道答案,我要回答