http://www.361way.com/php-heredoc-nowdoc/3008.html

一、heredoc结构及用法

Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。其对格式化输出内容时,比较有用 。具体其有以下特点:

1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。

2、开始标记后不能出现空格或多余的字符。

3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接 。

如:

function outputhtml()
{
//自 PHP 5.3.0 起还可以在 Heredoc 结构中用双引号来声明标识符,所以开头这句也可以写为echo <<<"EOT"
echo <<<EOT
<html>
<head><title>主页</title></head>
<body>主页内容</body>
</html>
EOT;
}
outputhtml();

  

这里,就不用像普通的php写法那样,echo "<html>"  echo "<head>……" ,这样不但看上去舒服易读,而且也省去了每行双引号的引用。

再给出一个变量引用的例子:

<?php
$name = '361way运维之路';
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;
?>

  

二、nowdoc结构及用法

在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。

一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。

例如:now结构中复杂变理的示例

一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。

例如:now结构中复杂变理的示例

<?php
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
/* 含有变量的更复杂的示例 */
class foo
{
public $foo;
public $bar;
function foo()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}
$foo = new foo();
$name = 'MyName';
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': x41
EOT;
?>

  其输出为:

My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': x41

  

最新文章

  1. Latex使用整理
  2. 无法连接虚拟设别 ide1:0.
  3. oracle数据库导入、导出
  4. 第19/24周 锁升级(Lock Escalations)
  5. python中set集合
  6. jQuery操作滚动条
  7. Hello Qt
  8. 20160730noip模拟赛zld
  9. Eclipse自动插件依赖的一种配置解决方式
  10. EL表达式使用之类switch语句
  11. python 笔记2--函数
  12. C语言基础11
  13. HashTable源码阅读
  14. application对象的应用案例
  15. 滴水穿石-07Java开发中常见的错误
  16. JAVA学习笔记系列2-Java程序的运行机制
  17. 编写一个BAT脚本协助运维人员遇到问题时候调测数据库是否有效连接成功的操作攻略
  18. &lt;Scala&gt;&lt;For beginners&gt;
  19. Spark 实践——基于 Spark MLlib 和 YFCC 100M 数据集的景点推荐系统
  20. 十三个有彩蛋的Linux命令

热门文章

  1. idea maven编译jdk报错
  2. 【NIFI】 实现数据库到数据库之间数据同步
  3. android-如何获得当前正在运行的activity的相关信息
  4. 2018.12.18 bzoj5296: [Cqoi2018]破解D-H协议(bsgs)
  5. 2018.11.14 uoj#34. 多项式乘法(fft)
  6. idea环境下js、css中文乱码
  7. 第24章:MongoDB-聚合操作--MapReduce
  8. fPLL结构及动态配置
  9. redis for lack of backlog
  10. Web结构组件