php中heredoc和nowdoc的用法,少写echo

网友投稿 812 2022-11-03

php中heredoc和nowdoc的用法,少写echo

php中heredoc和nowdoc的用法,少写echo

1.Heredoc 结构:

就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。其对格式化输出内容时,比较有用 。 ##具体其有以下特点: 1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。 2、开始标记后不能出现空格或多余的字符。 3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。 4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接 。

万年历 星期日 星期一 星期二 星期三 星期四 星期五 星期六DAN; for($i=1;$i<=$days;){ echo ''; for($j=1;$j<8;$j++){ if($i>$days || $w<=0){ echo ''; $w++; }else{ echo "$i"; $i++; } } echo ''; } echo ''; ?>

图片就不上传了,markdown不能粘贴进图片,非得上传才行。需要的同学直接复制到php文件中即可看到效果。

2. nowdoc结构及用法:

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

3、报错解决方案:

在使用heredoc和nowdoc时,经常会遇到如下报错:

Parse error: syntax error, unexpected T_SL in php

一般遇到该问题的原因是定界符之后空格的问题引起的。如上例中的EOT后面有空格就会报这个错。处理是否有空格还有一个小技巧。以vim为例,语法正确时,开始和结尾处的EOF会高亮显示。不高亮时,则证明语法有问题。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:QuickSand 一个紧凑的C框架来分析可疑的恶意软件文档
下一篇:MultipeerKit :网内(通过 Wi-Fi,蓝牙)多设备点对点/多点通讯框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~