什么情况下可以不写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时间不正确的解决方法
Apr 09 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
PHP url 加密解密函数代码
Aug 26 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
php 实现进制相互转换
Apr 07 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
分享一个漂亮的php验证码类
Sep 29 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
JS实现拼图游戏
2021/01/29 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
python面试题小结附答案实例代码
2019/04/11 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
Python连接mysql方法及常用参数
2020/09/01 Python
python 爬取小说并下载的示例
2020/12/07 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
英语系本科生求职信范文
2013/12/18 职场文书
项目副经理岗位职责
2013/12/30 职场文书
大学毕业感言
2014/01/10 职场文书
销售竞赛活动方案
2014/08/23 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
网站出售协议书范文
2014/10/10 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书