问一个很基础的问题,PHP 字符串中的Heredoc 和 Nowdoc 结构,本人从来没有使用过,不知大家有没有用过?究竟其使用优势在什么地方?
首先要了解下定界符
php可以使用
<?php
echo <<<EOT
this is body
this is body as well
EOT
;
这种方式来输出大段文字,其中EOT就是定界符,定界符有分为开始定界符和结束定界符,定界符可以是任何内容,只要保证开始定界符和结束定界符一致就行,比如
<?php
echo <<<AAA
this is body
this is body as well
AAA
;
这就是heredoc的写法,heredoc中的变量会被解析成具体的值
<?php
$a = 'this is string';
echo <<<AAA
this is body
this is body as well
$a
AAA
;
// output
this is body
this is body as well
this is string
如果希望内容不被解析,可以在开始定界符的两边加上单引号'EOT'
<?php
$a = 'this is string';
echo <<<'AAA'
this is body
this is body as well
$a
AAA
;
// output
this is body
this is body as well
$a
这就是nowdoc的写法
在程序里写SQL语句的时候还是很常用的
而且有些ide或者编辑器,比如我的vim还可以高亮Heredoc里面SQL的关键字呢
以此类推在程序里面写一些比较长的,带格式的特别是有好多折行的字符串用heredoc/nowdoc很不错
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。