PHP中nowdoc和heredoc使用需要注意的一点

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

最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说EOF前面不能有空格,而为了代码缩进,正好产生了这样的问题.
 
 代码如下:
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;//EOD一定要靠近前面,不能有空格,同时不要漏掉结束符分号;
 
附:heredoc和nowdoc的区别
 
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”的效率问题而实现的“高效率”的静态版本

时间: 2024-08-23 13:04:36

PHP中nowdoc和heredoc使用需要注意的一点的相关文章

PHP中nowdoc和heredoc使用需要注意的一点_php实例

最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说EOF前面不能有空格,而为了代码缩进,正好产生了这样的问题. 复制代码 代码如下: $str = <<<'EOD'Example of stringspanning multiple linesusing nowdoc syntax.EOD;//EOD一定要靠近前面,不能有空格,同时不要漏掉结束符分号; 附:heredoc和nowdoc的区别 heredoc使用 <<< EOT 的标示符,而nowdo

加密芯片 嵌入式芯片-嵌入式设备中的程序怎样保护?成本低一点的

问题描述 嵌入式设备中的程序怎样保护?成本低一点的 嵌入式设备中的程序怎样保护?什么样的成本低一点的呢?那位认识推荐下呢? 解决方案 如果只追求便宜可选择逻辑类加密芯片,安全性低,程序与芯片没有真正结合在一起,成本一般1元左右就可以搞定.我用过的LKT4101这一款不错,成本略高一点,本身进行了程序移植这一步骤,实现了主程序的真正分离(一部分在MCU,另外的在LKT4101中),安全性得到了极大的提升,自从使用至今已经5年多了,没有被破解过.

Spring中基于aop命名空间的AOP 一(一点准备工作和一个例子)

在某些时候,我们工程中使用的JDK 不一定就是1.5 以上,也就是说可能不支持Annotation 注解,这时自然也就不能使用@AspectJ 注解驱动的AOP 了,那么如果我们仍然想使用AspectJ 灵活的切入点表达式,那么该如何呢?Spring 为我们提供了基于xml schematic 的aop 命名空间,它的使用方式和@AspectJ 注解类似,不同的是配置信息从注解中转移到了Spring 配置文件中.在这里,我们将详细介绍如何使用Spring 提供的<aop:config/> 标签

winformC#中修改水晶报表,运行出来却一点变化也没有 跟之前一样

问题描述 因为要在老的水晶报表中添加新的项目需要印在一页上所以想通过缩小原有的字体来给新的项目一点空间然而当我修改完之后运行程序发现字体等均为之前的设置我新加的东西在里面但是因为原有大小不变所以导致报表无法再一张纸上完整显示请大神帮忙看看啥问题 解决方案 本帖最后由 lethe7868 于 2015-11-30 15:37:12 编辑

php的heredoc与nowdoc知识

heredoc 结构 heredoc 句法结构:<<<.在该运算符之后要提供一个标识符,然后换行.接下来是字符串本身,最后要用前面定义的标识符作为结束标志. <?php $content = <<<FDIPZONE <html> <head> <title>test</title> </head> <body> <p><img src="png/logo.png&q

在Delphi的DBGrid中插入其他可视组件

Delphi提供了功能强大的DBGrid组件,以方便进行数据库应用程序设计.但是如果我们仅仅利用DBGrid组件,每一个获得焦点(Grid)只是一个简单的文本编辑框,不方便用户输入数据.Delphi也提供了一些其他数据组件来方便用户输入,比如DBComboBox,DBCheckBox等组件,但这些组件却没有DBGrid功能强大.Delphi能不能象Visual Foxpro那样让DBGrid中获得焦点网格可以是其它可视数据组件以方便用户呢?其实我们可以通过在DBGrid中插入其他可视组件来实现这

dialog工具中,访问用户输入的结果为什么要重定向&amp;amp;quot;标准错误流&amp;amp;quot;?而不是“标准输出流”?

问题描述 dialog工具中,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 标题限制,完整问题为------dialog工具中,对于文本输入,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 看Neil Matthew著的<Linux程序设计>65页中关于dialog访问用户输入结果的一点思考,想知道其中的一些机制.小白求助亲们解答一些,谢谢. 解决方案 iunx 下

Windows 2000中NTFS权限介绍及应用

WIN2000中添加了一个与WIN98及以前的WINDOWS版本不同的一个特性,那就是NTFS权限,由于有了这个特性,那么在WIN2000中就可以实现文件夹及文件级别的安全控制,这不同于WIN98中的帐号和密码,在WIN98中,只要知道了帐号和密码,那么就可以对计算机完全控制,而无法实现对某个帐户只允许读取某个文件夹或者某个文件的功能.而在WIN2000中,完全可以完美的实现这一点.OK,Let's go! 首先,先说一下要实现该功能的前提条件,那就是你的分区必须是NTFS分区,如果是FAT或者

在PHP世界中选择最合适的模板--比较PHPLIB Template和FastTemplate

比较|模板 PHP工程中的模板应用,是进行中型乃至大型项目中建议采用的处理表现层的好办法.但是具体到模板的实施,采用何种现有的模板技术却需要进行一番比较.PHP世界中比较受关注的模板处理有PHPLIB Template和FastTemplate两种,我们对技术的易用性和速度进行了评测--想知道结果吗? 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"