php中heredoc与nowdoc的使用方法
来源:互联网 发布:linux时间不准确 编辑:程序博客网 时间:2024/05/16 05:15
一、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 “” echo “……” ,这样不但看上去舒服易读,而且也省去了每行双引号的引用。
再给出一个变量引用的例子:
<?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;?>
二、nowdoc结构及用法
在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。
一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<’EOT’。
例如:now结构中复杂变理的示例
<?php$str = <<<'EOD'Example of stringspanning multiple linesusing 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': x41EOT;?>
其输出为:
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
具体可以和heredoc中的作下比较,在heredoc中,变量会被正常解析。x41也会被解析也A 。
三、其他
在使用heredoc和nowdoc时,经常会遇到如下报错:
Parse error: syntax error, unexpected T_SL in php
一段遇到该问题的原因是定界符之后空格的问题引起的。如上例中的EOT后面有空格就会报这个错。处理是否有空格还有一个小技巧。以vim为例,语法正确时,开始和结尾处的EOF会高亮显示。不高亮时,则证明语法有问题。
0 0
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- Php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的使用方法
- php中heredoc与nowdoc的区别
- php中heredoc与nowdoc的区别
- php heredoc 与 nowdoc
- php heredoc 与 nowdoc
- php 中的heredoc与nowdoc的区别
- PHP中字符串的heredoc结构和nowdoc结构
- php中heredoc和nowdoc的用法,少写echo
- PHP+Tp5中heredoc和nowdoc解析
- php中heredoc的使用方法
- php中heredoc的使用方法
- php中heredoc的使用方法
- sql中 limit 和 top
- 编程笔记网址
- Android 6.0 AppOps 简介
- Linux内核sk_buff结构分析
- Oracle备份与恢复方案设计及运维:23个典型问题解答及经验分享
- php中heredoc与nowdoc的使用方法
- 日期工具类
- 捕获程序异常并输出Log到屏幕上
- OpenVPN for CentOS搭建
- Android 匿名共享内存C++接口分析
- 为Amazon EC2实例设置时间
- ios提示框
- 解析WeakHashMap与HashMap的区别详解
- SVG文字