PHP中的定界符格式

  1. <?php
  2. //nowdoc(单引号定界符)
  3. //ABC可以是任合内容,放在单引号中
  4. $c=<<<'ABC'
  5. 这里可以是任合内容
  6. 我是历的苛夺基
  7. 本原则叶落归根在运
  8. 输费艰难田¥¥&……
  9. ABC;
  10. echo $c;
  11. ?>
  12. <?php
  13. //heredoc(双引号定界符)
  14. //ABC可以是任合内容,放在双引号中或是不加引号
  15. $c=<<<ABC
  16. 这里可以是任合内容
  17. 我是历的苛夺基
  18. 本原则叶落归根在运
  19. 输费艰难田¥¥&……
  20. ABC;
  21. echo $c;
  22. ?>

如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在PHP定界符中的任何特殊字符都不需要转义;
3.PHP定界符中的PHP变量会被正常的用其值来替换。
PHP中的定界符格式是这样的:

  1. <<<Eof
  2. ……
  3. Eof;

看起来很简单,但是其中有许多地方需要注意。
首先在<<<之后的字符Eof是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,就像{}这样的——这是最基本的。
在PHP定界符使用的过程中,第二个需要注意的问题——也是最经常出现问题的地方:
结尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话,你会收到一个这样的错误信息:
Parse error: parse error, unexpected $end in……,提示你语法错误;
第三个需要注意的是,如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,例如

  1. <<<Eof
  2. hello{$name}
  3. Eof;

变量$name之所以要用{}括起来是要告诉PHP解析器这是一个PHP变量,其实不用也是可以的,但是有可能会产生歧义,例如你的变量后面刚好不是一字母或者特殊符号什么的会怎么样呢?千万不能有这样的写法

  1. <<<Eof
  2. hello<?php echo $name?>
  3. Eof;

这样的情况,你同样会收到一个语法错误的信息。先便是一个战地测试过的PHP定界符的正确写法。里面包含了,html和javascript的代码:

  1. <?php
  2. $name = 'kitty';
  3. echo <<<Eof
  4. <table height="20">
  5. <tr><td>
  6. {$name}<br/>
  7. <script>
  8. var p='hello world';
  9. document.writeln(p);
  10. </script>>
  11. </td></tr>
  12. </table>
  13. Eof;
  14. ?>
点赞 ( 0 )

9 条评论

  1. how to find cheap flights

    This is a topic which is close to my heart... Thank you! Exactly where are your contact details though?

  2. best way to book flights

    I delight in, lead to I discovered exactly what I used to be looking for. You've ended my four day long hunt! God Bless you man. Have a nice day. Bye

  3. cheap airline ticket

    Hey! Would you mind if I share your blog with my twitter group? There's a lot of people that I think would really appreciate your content. Please let me know. Cheers

  4. flight ticket booking

    This article will assist the internet people for setting up new weblog or even a weblog from start to end.

  5. super cheap flights

    Hi there! I just would like to give you a big thumbs up for your great info you have here on this post. I'll be returning to your website for more soon.

  6. extremely low airfares

    I'm truly enjoying the design and layout of your site. It's a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a developer to create your theme? Outstanding work!

  7. Randy

    Hey very interesting blog!

  8. find cheap flights

    After going over a number of the articles on your blog, I seriously appreciate your technique of blogging. I book-marked it to my bookmark website list and will be checking back soon. Please visit my web site as well and tell me your opinion.

  9. gamefly

    Hey There. I discovered your weblog the use of msn. That is a very neatly written article. I'll be sure to bookmark it and come back to read extra of your useful info. Thank you for the post. I'll certainly return.

发表评论

人生在世,错别字在所难免,无需纠正。

插入图片
s
返回顶部