什么情况下可以不写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设计模式 Singleton(单例模式)
Jun 26 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
PHP zip扩展Linux下安装过程分享
May 05 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 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
apache rewrite_module模块使用教程
2008/01/10 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
vue组件间通信解析
2017/03/01 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
解密Python中的描述符(descriptor)
2015/06/03 Python
Python实现简单多线程任务队列
2016/02/27 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
python模块之paramiko实例代码
2018/01/31 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
如何理解委托
2012/01/06 面试题
精通CAD能手自荐书
2014/01/31 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
品牌服务方案
2014/06/03 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
婚宴邀请函
2015/01/30 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android