什么情况下可以不写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 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
初识PHP
Sep 28 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 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目录遍历函数opendir用法实例
2014/11/20 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
javascript 播放器 控制
2007/01/22 Javascript
JS 自动安装exe程序
2008/11/30 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
利用python批量检查网站的可用性
2016/09/09 Python
详解django.contirb.auth-认证
2018/07/16 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
如何整合JQuery和Prototype
2014/01/31 面试题
物业保安员岗位职责
2014/03/14 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
出生公证书样本
2014/04/04 职场文书
汽车专业求职信
2014/06/05 职场文书
聘用意向书
2014/07/29 职场文书
2014年技术员工作总结
2014/11/18 职场文书
试用期自我评价范文
2015/03/10 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
入党申请书怎么写?
2019/06/11 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS