什么情况下可以不写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 相关文章推荐
让你同时上传 1000 个文件 (二)
Oct 09 PHP
php 字符串函数收集
Mar 29 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
php数组添加与删除单元的常用函数实例分析
Feb 16 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
树结构之JavaScript
2017/01/24 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
python从子线程中获得返回值的方法
2019/01/30 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
财产分割协议书范本
2014/11/03 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
python爬虫--selenium模块
2021/03/31 Python
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技