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

我们经常看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下必须写?先来看2个例子:

下面的代码正常运行:

<?PHP

    echo 123456;

 

下面的代码报错:

    <p>abc</p>

原因分析:

前者是纯PHP代码,可以不写结束标签,也不推荐写结束标签;后者除了PHP代码,还有HTML代码,必须要写结束标签

为什么不推荐前者写结束标签

在不写PHP结束标签时,认从开始标签往后都是PHP代码,如果有其他代码,那就会报错。PHP只能运行在PHP标签里面的脚本,在脚本之外的所有字符,包括你看不见的空格或者回车,制表符号,都是作为输出内容会response到客户端的,这样就有可能会产生意想不到的事情。例如文件里面使用了header函数,这个文件同时又包含了另外一个文件,并且被包含的文件PHP标签外有空字符,这个时候会报header already send的错误。我们查看一些网页的源代码看到的开头部分有很多空格和换行,就是因为这个原因导致的。

解决方案建议:

文件、或者一些class文件只有纯PHP代码文件不推荐加结束标签


相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...