php定界符 <<< 的作用及使用注意事项
-
按照原样输出,包括换行符、特殊字符等
-
任何特殊字符都不需要转义,比如双引号、单引号,它会按照原样输出
-
像在双引号字符串中一样使用php的变量输出
定界符<<<,当需要输出大段文本时,一般选用定界符,它的输出形式和使用双引号输出的表现一致,只是没有双引号,这意味着在定界符中的字符串不需要转义双引号。
<?php
$testFloat = 0.58;
// 我在这里使用html作为定界符标识(定界符标识是可以自定义的)
echo <<<html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>$testFloat
</head>
<body>
</body>
</html>
html;
echo "<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"UTF-8\">
<title>Document</title>$testFloat
</head>
<body>
</body>
</html>";
以上两个echo的最终输出结果是一样的。
因此,像类似html大段文本的输出,就可以使用定界符方式,html元素属性就不用对双引号进行转义了。
使用定界符<<< 的注意事项
- 定界符标识必须前后一致
- 可以任意定义定界符标识,比如 echo html div ,尽量选用有意义的标识符,并遵循某类命名规范。
- 开头标识后不能跟任何字符,空格也不可以,换行后再跟要输出的文本。
- 结束标识(其后紧跟一个分号;)前后都不可有任何字符,即结束标识要顶头写,且独占一行,其后除紧跟分号外,不能有任何字符(空格也不可以)
- 最后要注意的是,结束标识所在行不能成为脚本的最后一行,其下必须有空行或者其他代码行,否则报错。
<?php
echo <<< div// 标识符后不能有空格,注释以及其他任何字符;标识符前无限制
<div id="divid"></div>
div;// 结束标识必须独占一行且前后都不可有任何字符,包括空格,没否则报错
// 如果结束标识下方没有任何行(空行、代码行等),报错
以上任何一项不符,会报类似以下错误:
Parse error: syntax error, unexpected end of file ...
参考文档:PHP的定界符