在PHP中,当我们需要写很长的多行字符串(比如一段HTML代码或SQL语句)时,用普通的引号会很麻烦。这时就可以用到 Heredoc 和 Nowdoc。
它们最核心的区别可以用一句话概括:Heredoc 像“双引号”,Nowdoc 像“单引号”。
1. Heredoc(会“解析”变量)
写法:<<<标识符
特点:它会识别字符串里的变量,并把变量替换成具体的值。也会解析转义字符(如 \n)。
例子:
$name = "张三"; echo <<<EOT 你好,$name! EOT; // 输出:你好,张三!
适用场景:当你需要在长文本里动态插入变量时。
2. Nowdoc(完全“原样输出”)
写法:<<<'标识符' (注意:标识符被单引号包裹,这是它与Heredoc唯一的语法区别)
特点:它不会解析其中的任何变量。你写什么,它就原样输出什么。
例子:
$name = "张三"; echo <<<'EOT' 你好,$name! EOT; // 输出:你好,$name!
适用场景:当你需要输出一大段纯文本,或者是一段本身就包含大量 $ 符号的代码,且不希望PHP去乱动它时。
总结:
Heredoc:聪明,能认出变量(类似 "")。
Nowdoc:死板,写啥出啥(类似 '')。
网友回复
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?
python如何做个RPA按键精灵的程序?
写一个windows的cmd的python代码如何在命令行中捕获获取复制粘贴的图片?
如何将别人爆款的抖音短视频短剧文案提取为seedance2的提示词?
阿里云域名dns云解析10万次日限额如何应对?
windows电脑如何提交上架ipa苹果应用?


