php heredoc 与 nowdoc



heredoc 结构

heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串本身,最后要用前面定义的标识符作为结束标志。

<?php
$content = <<<FDIPZONE
<html>
<head>
<title>test</title>
</head>
<body>
<p><img src="http://www.csdn.net/css/logo.png"></p>
<p><a href='http://blog.csdn.net/fdipzone'>blog</a></p>
</body>
</html>
FDIPZONE; echo $content;
?>

heredoc 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包括变量时有效。下例将会出错。

<?php
class test{ public $var = '123'; public $a = <<<FDIPZONE
$var
FDIPZONE; } $obj = new test();
echo $obj->a;
?>

heredoc结构中,变量将被替换,但方法不会。含有复杂的变量时要格外小心。

<?php
$var = '123';
$content = <<<FDIPZONE
$var time();
FDIPZONE; echo $content; // 123 time();
?>

nowdoc 结构

nowdoc 句法结构非常象 heredoc 结构,可是 nowdoc 中不进行解析操作。这样的结构非常适合用于嵌入php代码或其他大段文本而无需对当中的特殊字符进行转义。

nowdoc 与 heredoc 结构一样的标记 <<<,但跟在后面的标识符必须用单引號括起来,即<<<'EOF'。 heredoc 结构的全部规则相同适用于nowdoc结构,尤其是结束标识符的规则。nowdoc是在php5.3之后才添�的。

<?php
$var = '123';
$content = <<<'FDIPZONE'
$var time();
FDIPZONE; echo $content; // $var time(); $var没有被替换
?>

nowdoc 结构能够用在随意的静态数据环境中,最典型的演示样例是用来初始化类的属性或常量。下例将不会出错,能够对照heredoc的样例。

<?php
class test{ public $a = <<<'FDIPZONE'
$var
FDIPZONE; } $obj = new test();
echo $obj->a;
?>

php heredoc 与 nowdoc的更多相关文章

  1. heredoc 和 nowdoc

    heredoc 和 nowdoc     多次使用 php nowdoc HereDoc 插入大量Hmtl都没有成功,一样提示语法有问题,事实上PHP手册注明是这样写的,实在很奇怪 最后发现了问题所在 ...

  2. php中heredoc与nowdoc的使用方法

    一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的 ...

  3. PHP 7.3 我们将迎来灵活的 heredoc 和 nowdoc 句法结构

    php.net RFC 频道已经公布了 PHP 7.3 的 Heredoc 和 Nowdoc 语法更新,此次更新专注于代码可读性: Heredoc 和 Nowdoc 有非常严格的语法,有些时候这令很多 ...

  4. php中heredoc与nowdoc的使用方法、定界符<<<的使用方法

    一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的 ...

  5. heredoc和nowdoc的区别

    heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredo ...

  6. php中的heredoc和nowdoc对比

    两者的不同就相当于php双引号和单引号的不同,双引号会解析里边的变量,而单引号不会 heredoc语法 <?php $a = 'cqh'; $str = <<<HTML hel ...

  7. <转>php中heredoc与nowdoc的使用方法

    http://www.361way.com/php-heredoc-nowdoc/3008.html 一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 ...

  8. 什么是PHP中的heredoc和nowdoc

    heredoc结构类似于双引号字符串,nowdoc结构是类似于单引号字符串的.nowdoc结构很像heredoc结构,但是 nowdoc不进行解析操作. 这种结构很适合用在不需要进行转义的PHP代码和 ...

  9. Heredoc和Nowdoc

    就象heredoc结构类似于双引号字符串,Nowdoc结构是类似于单引号字符串的.Nowdoc结构很象heredoc结构,但是 nowdoc不进行解析操作 . 这种结构很适合用在不需要进行转义的PHP ...

随机推荐

  1. leetcode:ZigZag Conversion 曲线转换

    Question: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of ...

  2. CString-int-string-char-BSTR之间的转换

    一.CString, int, string, char*之间的转换 string 转 CString CString.Format("%s", string.c_str());c ...

  3. 转——使用Axure制作App原型应该怎样设置尺寸?

    想用Axure设计一个 APP原型 放到真实的移动设备中演示,但不知道应该使用什么尺寸?若要解释清楚像素和分辨率需要的篇幅比较长,请大家参考百度百科.这里金乌直接给大家提供一个常用的移动设备尺寸列表, ...

  4. 解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题

    问题情况描述如下: 普及知识:   /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf.  Ubuntu 有一个 reso ...

  5. 【LoadRunner】安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案

    我的电脑在安装UFT时,被要求需要卸载本机上安装的LoadRunner11,当LoadRunner11被卸载后,进行重新安装LoadRunner11时,会报缺少vc2005_sp1_with_atl_ ...

  6. 关于设置MX记录

    简介:正确设置MX(Mail Exchanger)邮件交换记录是企业电子邮件服务稳定运行的基本条件,我们经常发现很多企业电子邮箱管理员因为设置了不符合规范的MX记录,导致重要的外部邮件退回或者丢失. ...

  7. SOA和Web Service介绍

    博客园中关于SOA和Web Service的介绍 http://www.cnblogs.com/talentbuilder/archive/2010/05/04/1727044.html http:/ ...

  8. C++视频课程小结(3)

    C++远征之封装篇(上) 章节介绍: 每章小结: 第一章:课程介绍. 按照惯例是章节的总介绍,内容明显多了很多(为了做作业我还要赶进度的说),主要说了:类和对象是本章的主角,然后还有很多配角,像数据成 ...

  9. HDU 4667 Building Fence

    题意: 给n个圆和m个三角形,且保证互不相交,用一个篱笆把他们围起来,求最短的周长是多少. 做法:--水过... 把一个圆均匀的切割成500个点,然后求凸包. 注意:求完凸包,在求周长的时候记得要把圆 ...

  10. Spring JTA应用JOTM & Atomikos II JOTM

    上节建立了一个简单的Java Application以及所需要的数据库和数据表,本节将介绍JOTM在Spring中的配置. JOTM(Java Open Transaction Manager)是Ob ...