因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。

1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在PHP定界符中的任何特殊字符都不需要转义;
3.PHP定界符中的PHP变量会被正常的用其值来替换。

PHP中的定界符格式是这样的:

<<<Eof
……
Eof;

看起来很简单,但是其中有许多地方需要注意。

首先在<<<之后的字符Eof是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,就像{}这样的——这是最基本的。

在PHP定界符使用的过程中,第二个需要注意的问题——也是最经常出现问题的地方:

结尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话,你会收到一个这样的错误信息:
Parse error: parse error, unexpected $end in……,提示你语法错误;

第三个需要注意的是,如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,例如

<<<Eof
hello{$name}
Eof;

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

<<<Eof
hello<?php echo $name?>
Eof;

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

<?php
$name = 'kitty';
echo <<<Eof
<table height="20">
<tr><td>
{$name}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td></tr>
</table>
Eof;
?>

最新文章

  1. Hadoop 2.6.0 Namenode HA,ResourceManager HA
  2. 新作《ASP.NET Web API 2框架揭秘》正式出版
  3. ThinkPHP v3.2.3 数据库读写分离,开启事务时报错:There is no active transaction
  4. 转OSGchina中,array老大的名词解释
  5. 【caffe】未定义函数或变量caffe_
  6. 数据结构算法C语言实现(四)---2.3循环链表与双向链表
  7. iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
  8. 继承Prototype实现语句不能写在动态原型法中的理解
  9. 检测php网站是否已经被攻破
  10. volatile的使用原则
  11. HDU2088JAVA2
  12. 地图:CLGeocoder地址解析与反地址解析
  13. nginx知识点简单回顾
  14. ABP之session
  15. 微信小程序自定义导航栏
  16. python old six day
  17. ScrollView嵌套Linearlayout显示不全的解决办法
  18. Ajax接收后台发送过来的布尔值以及指定的字符串
  19. 跟我学Spring Boot(二)Hello World
  20. IOS 7 更改导航栏文字到白色

热门文章

  1. maven安装,maven命令行使用
  2. 购物单问题—WPS使用excel
  3. 在Centos上打Preempt-rt实时补丁
  4. Redis七(发布订阅)
  5. Digital Audio - Creating a WAV (RIFF) file
  6. 第六课 GDB调试 (上)
  7. ruby underscore
  8. python之路 前段之html,css
  9. php内存管理机制、垃圾回收机制
  10. CodeForces - 995E Number Clicker (双向BFS)