什么情况下可以不写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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
Nov 14 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
PHP抽象类与接口的区别实例详解
May 09 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php连接mysql数据库代码
2009/03/10 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
PHP xpath()函数讲解
2019/02/11 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
javascript 播放器 控制
2007/01/22 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
微信小程序云开发(数据库)详解
2019/05/17 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
Python生成随机密码
2015/03/10 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
C语言编程练习
2012/04/02 面试题
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
opencv实现图像几何变换
2021/03/24 Python
大三预备党员入党思想汇报
2014/01/08 职场文书
社会保险接收函
2014/01/12 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
村班子对照检查材料
2014/08/18 职场文书
委托书的写法
2014/08/30 职场文书
2014年民警工作总结
2014/11/25 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
护士业务学习心得体会
2016/01/25 职场文书
用Python提取PDF表格的方法
2021/04/11 Python