什么情况下可以不写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之PHP语法学习笔记1
Dec 17 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
PHP常用编译参数中文说明
Sep 27 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
微信支付扫码支付php版
Jul 22 PHP
Thinkphp 5.0实现微信企业付款到零钱
Sep 30 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 03 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
实现jquery放大镜的两种方法
2018/02/22 jQuery
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
如何使用python进行pdf文件分割
2019/11/11 Python
flask实现验证码并验证功能
2019/12/05 Python
python实现图片素描效果
2020/09/26 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
质检的岗位职责
2013/11/17 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
服装店营销方案
2014/03/10 职场文书
班训口号大全
2014/06/18 职场文书
厉行节约工作总结
2015/08/12 职场文书
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫