什么情况下可以不写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 iconv() : Detected an illegal character in input string
Dec 05 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP中设置时区方法小结
Jun 03 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
PHP中类的自动加载的方法
Mar 17 PHP
PHP读取Excel类文件
May 15 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 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脚本的10个技巧(5)
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
经验几则 推荐
2006/09/05 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
python 编程之twisted详解及简单实例
2017/01/28 Python
Python正则表达式经典入门教程
2017/05/22 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python 实现视频 图像帧提取
2019/12/10 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
大学毕业生通用自荐信范文
2013/10/31 职场文书
公务员综合考察材料
2014/02/01 职场文书
技能比赛获奖感言
2014/02/14 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
尊师重教主题班会
2015/08/14 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python