PHP 定界符 使用技巧


Posted in PHP onJune 14, 2009

如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的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; 
?>
PHP 相关文章推荐
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
php 变量定义方法
Jun 14 #PHP
PHP 函数语法介绍一
Jun 14 #PHP
PHP 木马攻击防御技巧
Jun 13 #PHP
C# Assembly类访问程序集信息
Jun 13 #PHP
php adodb连接mssql解决乱码问题
Jun 12 #PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 #PHP
php MsSql server时遇到的中文编码问题
Jun 11 #PHP
You might like
php通过sort()函数给数组排序的方法
2015/03/18 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
Python学习笔记之os模块使用总结
2014/11/03 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python3中列表list合并的四种方法
2019/04/19 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
会计电算化应届生自荐信
2014/02/25 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
宿舍标语大全
2014/06/19 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
信用卡工作证明模板
2014/09/14 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS