什么情况下可以不写PHP的闭合标签“?>”


Posted in PHP onAugust 28, 2014

在一些PHP项目里我们经常会看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下又必须写?

对此我们先来看2个例子:

下面的代码可以正常运行:

<?php
  echo 123456;

下面的代码会报错:

<?php
  echo 123456;
  <p>abc</p>

原因分析:
前者是纯php代码,可以不写结束标签,也不推荐写结束标签;后者除了php代码,还有html代码,必须要写结束标签。
 
那么为什么不推荐前者写结束标签呢?
因为在不写php结束标签时,默认从开始标签往后都是php代码,如果有其他代码,那就会报错。php只能运行在php标签里面的脚本,在脚本之外的所有字符,包括你看不见的空格或者回车,制表符号,都是作为输出内容会response到客户端的,这样就有可能会产生意想不到的事情。例如文件里面使用了header函数,这个文件同时又包含了另外一个文件,并且被包含的文件的php标签外有空字符,这个时候会报header already send的错误。我们查看一些网页的源代码看到的开头部分有很多空格和换行,就是因为这个原因导致的。

解决方案建议:

库文件、或者一些class文件等只有纯php代码的文件不推荐加结束标签

相信本文所述对大家的PHP程序设计有一定的参考价值。

PHP 相关文章推荐
用php和MySql来与ODBC数据连接
Oct 09 PHP
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
在JavaScript中调用php程序
Mar 09 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php数字运算验证码的实现代码
Jul 30 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
PHP防盗链代码实例
Aug 27 #PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 #PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 #PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 #PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 #PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 #PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 #PHP
You might like
php 破解防盗链图片函数
2008/12/09 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php跨站攻击实例分析
2014/10/28 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
Python获取脚本所在目录的正确方法
2014/04/15 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
一些关于MySql加速和优化的面试题
2014/01/30 面试题
证券期货行业个人的自我评价
2013/12/26 职场文书
高中生家长寄语大全
2014/04/03 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书