什么情况下可以不写PHP的闭合标签“?>”

2015-01-24信息快讯网

这篇文章主要介绍了什么情况下可以不写PHP的闭合标签“?>”,是进行PHP程序开发需要特别注意的地方,需要的朋友可以参考下

在一些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获取四位字母和数字的随机数的实现方法
php实现读取手机客户端浏览器的类
PHP上传文件时自动分配路径的方法
ThinkPHP添加更新标签的方法
彻底删除thinkphp3.1案例blog标签的方法
php实现使用正则将文本中的网址转换成链接标签
PHP清除字符串中所有无用标签的方法
thinkphp特殊标签用法概述
ThinkPHP中I(),U(),$this->post()等函数用法
php中ob_get_length缓冲与获取缓冲长度实例
PHP中一些可以替代正则表达式函数的字符串操作函数
PHP中echo和print的区别
PHP防盗链代码实例
使用php方法curl抓取AJAX异步内容思路分析及代码分享
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
ThinkPHP查询返回简单字段数组的方法
php防止伪造数据从地址栏URL提交的方法
PHP实现的多彩标签效果代码分享
PHP中几个可以提高运行效率的代码写法、技巧分享
PHP中可以自动分割查询字符的Parse_str函数使用示例
ThinkPHP采用<volist>实现三级循环代码实例
可以保证单词完整性的PHP英文字符串截取代码分享
ThinkPHP标签制作教程
Thinkphp的volist标签嵌套循环使用教程
PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
ThinkPHP模板IF标签用法详解
ThinkPHP模板范围判断输出In标签与Range标签用法详解
php不写闭合标签的好处
php中{}大括号是什么意思
php各种编码集详解和以及在什么情况下进行使用
©2014-2024 dbsqp.com