什么情况下可以不写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语法(1)
Oct 09 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
php中用数组的方法设置cookies
Apr 21 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
Symfony生成二维码的方法
Feb 04 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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不用正则验证真假身份证
2013/11/06 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
MSN消息提示类
2006/09/05 Javascript
Javascript 陷阱 window全局对象
2008/11/26 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
AngularJS中的promise用法分析
2017/05/19 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
python读取文件名称生成list的方法
2018/04/27 Python
pytorch 模型可视化的例子
2019/08/17 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python dict的常用方法示例代码
2020/06/23 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
行政人员工作职责
2013/12/05 职场文书
《钱学森》听课反思
2014/03/01 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
小学英语听课心得体会
2016/01/14 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
实例讲解Python中sys.argv[]的用法
2021/06/03 Python