php关于<<<的用法

<?php
$str = <<< END
<emails>
<email>
<from>[email protected]</from>
<to>[email protected]</to>
<subject>there is no subject</subject>
<body><![CDATA[is it a body? oh ya, with some texts &
symbols]]></body>
</email>
</emails>
END;
$sxml = simplexml_load_string($str);
echo "<pre>";
print_r($sxml);
echo "</pre>";
?>
问题:
$str = <<< END表示什么意思

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。
如下:
<?php
$name = '浅水游';
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
<!--12321-->
Hello,$name!
</body>
</html>
EOT;
?>
1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:
$v=2;
$a= <<<EOF
"abc"$v
"123"
EOF;
echo $a; //结果连同双引号一起输出:"abc"2 "123"
3.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();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-10
$str = <<< END
<emails>
<email>
<from>[email protected]</from>
<to>[email protected]</to>
<subject>there is no subject</subject>
<body><![CDATA[is it a body? oh ya, with some texts &
symbols]]></body>
</email>
</emails>
END;

这里的END相当于一个标签,将标签内的字符串内容赋值给$str


比如这样也可以

echo <<< EOT
HTML输出内容。。。//这里注释照样输出!
EOT;

第2个回答  2013-05-11
和你使用$str='你要引用的内容' 效果大致一样。
优势就是会保持原有格式。
如果是放在引号中就不会保持原有格式了。
第3个回答  推荐于2017-11-25
php中
<<<定界符号
内容
定界符号;

表示“ 内容” 代表原本字符串内容,直接把"内容"直接解析成字符串。
定界符合前边不能有任何空格。内容部分单独成行。

如:$str = <<<strstr
.....
strstr;

$str = ‘...’;本回答被提问者采纳
第4个回答  2020-01-08
php中
<<<定界符号
内容
定界符号;

表示“ 内容” 代表原本字符串内容,直接把"内容"直接解析成字符串。
定界符合前边不能有任何空格。内容部分单独成行。
另外推荐一个学习君羊给大家,先是 649,再加上407,最后再加178,希望以上回答对你有帮助
相似回答