什么情况下可以不写PHP的结束标签“?>”
2016-12-01 20:01
309 查看
我们经常看到有些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代码的文件不推荐加结束标签。
转载自:http://www.lession.NET/blog/662.html
下面的代码正常运行:
<?php
echo 123456;
下面的代码报错:
<?php
echo 123456;
<p>abc</p>
原因分析:
前者是纯php代码,可以不写结束标签,也不推荐写结束标签;后者除了php代码,还有html代码,必须要写结束标签。
为什么不推荐前者写结束标签?
在不写php结束标签时,默认从开始标签往后都是php代码,如果有其他代码,那就会报错。php只能运行在php标签里面的脚本,在脚本之外的所有字符,包括你看不见的空格或者回车,制表符号,都是作为输出内容会response到客户端的,这样就有可能会产生意想不到的事情。例如文件里面使用了header函数,这个文件同时又包含了另外一个文件,并且被包含的文件的php标签外有空字符,这个时候会报header already send的错误。我们查看一些网页的源代码看到的开头部分有很多空格和换行,就是因为这个原因导致的。
解决方案建议:
库文件、或者一些class文件等只有纯php代码的文件不推荐加结束标签。
转载自:http://www.lession.NET/blog/662.html
相关文章推荐
- 什么情况下可以不写PHP的结束标签“?>”
- 什么情况下可以不写PHP的结束标签“?>”
- 什么情况下可以不写PHP的结束标签“?>”
- 什么情况下可以不写PHP的闭合标签“?>”
- 什么情况下可以不写PHP的闭合标签“?>”
- 不可以在列表模板里面写<? ?>中php开始、结束标签
- 纯php文件 关闭标签?>可以不写 防止末尾出现异常的空格什么的。。。
- <p>标签结束以后也有一个换行的动作,那< p>标签和< br/>标签有什么异同呢?
- php标签<?php ?>中的结束标签是否有必要添加
- 输入循环在什么情况下结束,while(cin>>word) 类型?
- 为什么有时候PHP没有闭合标签结束符 ?>
- PHP 开启短标签<??>支持
- php各种编码集详解和在什么情况下进行使用 [php 字符集 显示]
- IVM在什么情况下可以使用
- HTML标签天天练7--表单4<form>[textarea]到此 表单学习结束
- PHP不推荐在文件最后写‘?>’结束符
- 网易游戏笔试题─两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。 B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
- php各种编码集详解和以及在什么情况下进行使用
- Flex中的RemoteObject对象和<RemoteObject>标签是不可以同时存在的
- 省略PHP结束标记 “?>”的好处