php 中的 heredoc技术是php用来引用字符串的一种方式。在phpwind中巧妙的运用了这个技术,实现了逻辑代码和界面设计的分离。
语法:
1. 使用操作符 “<<<”
2. 操作符后紧跟标识符(开始标识符),之后重起新的一行 输入要引用的字符串,可以包含变量。
3. 新的一行,顶格写结束表示符,以分号结束。
要注意到几点:
1.标识符可以自定义 一般的 有EOT ,EOD EOF 等, 只有保持开始表示符和结束表示符一样即可。
2.结束表示符必须独占一行,且必须顶格写,最后以 ‘;’ 分号结尾。
3.所有引用的字符串中可以包含变量,无需字符串连接符。
<?php
$str
= <<<ET
heredoc test!!!
ET;
echo
$str
;
?>
|
输出结果
heredoc test!!!
heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredoc的语法,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就是什么内容,不会解析PHP相关的内容
heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \ 这种表示方法,大括号之类的这些都需要转义输出。
为了保证的确可用,建议使用 heredoc 的语法,本身也带有转义,因为PHP5.3才引进的nowdoc语法,很多云托管坏境很有可能不支持导致歇菜。
最后强调下,heredoc是从PHP4.0开始引进的,而nowdoc语法则需要5.3版本,因为heredoc包含了nowdoc的功能,所以个人建议还是使用heredoc比较好些。
简单来说:
1、heredoc是动态的 nowdoc是静态的
2、heredoc类似多行的双引号 newdoc类似多行的单引号
3、heredoc是一种专门处理大段字符串的通用处理方案,而nowdoc是php为了弥补动态实现“heredoc”的效率问题而实现的“高效率”的静态版本