您现在的位置是:首页 >其他 >浅谈 <<<php运算符,php定界符<<<讲解,PHP EOF(heredoc) 使用说明网站首页其他
浅谈 <<<php运算符,php定界符<<<讲解,PHP EOF(heredoc) 使用说明
简介浅谈 <<<php运算符,php定界符<<<讲解,PHP EOF(heredoc) 使用说明
PHP中提供了<<<运算符构建多行字符串序列的方法,通常称为here-document或表示为heredoc的简写。这种方法详细表述了字符串的字面值,并在文本中保留了字符串的下划线和其他空格(包括缩进)。例如:
<?php
$author ='sunseek.top';
echo <<<_END
Thisis a Headline
Thisis the first line. web is codeit.org.cn
Thisis the second line.
---Writtenby $author.
_END;
?>
PHP解析器会将两个_END标签中间的所有内容输出,就相当于一个用双引号引用的字符串。
这意味着,我们可以将一整段HTML语言直接写在PHP代码中,然后用PHP变量来替换具体的动态部分。
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。
使用概述:
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
//EOT 前后不能有空格
<?php
$name = '测试 vcncn.cn';
//下面<<<EOT后面不能有空格
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
<!--12321-->
Hello,{$name}!
Hello,$name!
</body>
</html>
EOT; //注意末尾的结束符必须靠边,其前面不能有空格
?>
注意:1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
注意不能使用
2.开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:
$v=2;
$a= <<<EOF
"abc"$v"123"
EOF;
echo $a; //结果连同双引号一起输出:"abc"2 "123"
4.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
//第一种
function outputhtml(){
echo "<html>";
echo "<head><title>主页</title></head>";
echo "<body>主页内容</body>";
echo "</html>;
}
//第二种
function outputhtml()
{
echo <<<EOT
<html>
<head><title>主页</title></head>
<body>主页内容</body>
</html>
EOT;
}
outputhtml();
笔记
<?php
$name="变量会被解析";
$a=<<<EOF
$name<br><a>html格式会被解析</a><br/>双引号和Html格式外的其他内容都不会被解析
"双引号外所有被排列好的格式都会被保留"
"但是双引号内会保留转义符的转义效果,比如table: 和换行:
下一行"
EOF;
echo $a;
?>
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。