|
|
请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马黑黑 于 2025-4-10 21:26 编辑
HEREDOC较早出现,它用于充当定界符号,以使多行文本可以连贯书写,不必老用 echo 或 print 去写HTML代码,非常方便。更主要的,HEREDOC 定界符可以可以解析包含PHP变量在内的内容,确保由它包裹的多行文本可以正常执行而不会出错,这得益于它封装了转义引号、PHP变量符号 $ 等等特殊字符;而要使用传统的 echo 和 print,我们需要另外转义,比较繁琐。
过去,HEREDOC 只有一种写法:
<<<EOF
// 这里是多行文本(可以是HTML、CSS、JS甚至PHP代码
EOF;
现在的PHP版本,支持这么写:
<<<“EOF”
// 这里是多行文本(可以是HTML、CSS、JS甚至PHP代码
EOF;
就是说,EOF 可以加小角双引号。
而加小角单引号的,是 NOWDOC 定界符,试看:
<<<'EOF'
// 这里是多行文本(可以是HTML、CSS、JS甚至PHP代码
EOF;
与 HEREDOC 定界符不同,NOWDOC 定界符里面的文本(代码),PHP变量不会被解析,PHP语句也不会被执行,但CSS、HTML、JS正常执行。
看下面两组代码:
<?php
/* heredoc 定界符
$name 变量会被PHP解析
*/
$name = 'Jack';
$mystr = <<<EOF
<style>
.tRed { color: red; }
.tBlue { color: blue; }
</style>
<div class="tRed">{$name}'s been back.</div>
<div class="tBlue">And he says Kate's going to be back soon.</div>
EOF;
echo $mystr;
/* 输出:
Jack's been back.
And he says Kate's going to be back soon.
*/
?>
<?php
/* nowdoc 定界符
$name 变量不会被PHP解析
*/
$name = 'Jack';
$mystr = <<<'EOF'
<style>
.tRed { color: red; }
.tBlue { color: blue; }
</style>
<div class="tRed">{$name}'s been back.</div>
<div class="tBlue">And he says Kate's going to be back soon.</div>
EOF;
echo $mystr;
/* 输出:
{$name}'s been back.
And he says Kate's going to be back soon.
*/
?>
定界符规定:
由 <<< 引导,紧跟着加关键词,关键词可以自定义,一般使用大写字母,例如本文示例的 EOF,和前导符号一起写成 <<<EOF,二者间不能有空格,EOF 之后也不能有空格或其它任何字符;多行文本之后另起一行,顶格书写收尾符 EOF(收尾符和起始符要相一致),必须紧跟着小角分好 ; ,写成 EOF;,小角分号之后不能有任何包含空格在内的任何字符。此外,如果想在多行文本显示符号 <<<,需要额外转义,可以写成 \<<< 。
PHP定界符和HTML标签 pre 在格式上有一丝丝类似,就是它们包裹的内容会“原本”输出——当然不是真正的原本。
|
评分
-
| 参与人数 3 | 威望 +110 |
金钱 +220 |
经验 +110 |
收起
理由
|
花飞飞
| + 30 |
+ 60 |
+ 30 |
很给力! |
梦江南
| + 30 |
+ 60 |
+ 30 |
赞一个! |
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|