什么情况下可以不写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 相关文章推荐
收集的DedeCMS一些使用经验
Mar 17 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
两款万能的php分页类
Nov 12 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 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 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
js 异步处理进度条
2010/04/01 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
机器学习python实战之手写数字识别
2017/11/01 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
python保存文件方法小结
2018/07/27 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python opencv实现证件照换底功能
2019/08/19 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
行政助理岗位职责
2013/11/10 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
上课睡觉检讨书
2014/01/28 职场文书
幼儿园春季开学寄语
2014/04/03 职场文书
Python实现双向链表基本操作
2022/05/25 Python