加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:php中heredoc与nowdoc介绍

发布时间:2020-12-13 02:17:55 所属栏目:PHP教程 来源:网络整理
导读:《php中heredoc与nowdoc介绍》要点: 本文介绍了php中heredoc与nowdoc介绍,希望对您有用。如果有疑问,可以联系我们。 PHP应用 Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术.但是现在的一些论坛

《php中heredoc与nowdoc介绍》要点:
本文介绍了php中heredoc与nowdoc介绍,希望对您有用。如果有疑问,可以联系我们。

PHP应用Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术.但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板便是一个典型的例子.??

1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 .开始标记和开始标记相同,好比常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可.??

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

代码如下:

$v=2;?
$a= <<<EOF?
"abc"$v?
"123"?
EOF;?
echo $a; //结果连同双引号一起输出:"abc"2 "123"?

3.heredoc常用在输出包括大量HTML语法d文档的时候.比如:函数outputhtml()要输出HTML的主页.可以有两种写法.很明显第二种写法比较简单和易于阅读.?

代码如下:

function outputhtml(){?
echo "<html>";?
echo "<head><title>主页</title></head>";??
echo "<body>主页内容</body>";?
echo "</html>;?
}?
function outputhtml()?
{?
echo <<<EOT?
?? <html>?
?? <head><title>主页</title></head>?
?? <body>主页内容</body>?
?? </html>?
EOT;?
}?
outputhtml();?

在heredoc中会自动替换其中的$变量,将命令和输入放在一块,便利?

附: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”的效率问题而实现的“高效率”的静态版本

欢迎参与《php中heredoc与nowdoc介绍》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读