什么情况下可以不写PHP的闭合标签“?>”
更新时间:2014年08月28日 08:54:39 投稿:shichen2014
这篇文章主要介绍了什么情况下可以不写PHP的闭合标签“?>”,是进行PHP程序开发需要特别注意的地方,需要的朋友可以参考下
在一些PHP项目里我们经常会看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下又必须写?
对此我们先来看2个例子:
下面的代码可以正常运行:
下面的代码会报错:
<?php
echo 123456;
<p>abc</p>
原因分析:
前者是纯php代码,可以不写结束标签,也不推荐写结束标签;后者除了php代码,还有html代码,必须要写结束标签。
那么为什么不推荐前者写结束标签呢?
因为在不写php结束标签时,默认从开始标签往后都是php代码,如果有其他代码,那就会报错。php只能运行在php标签里面的脚本,在脚本之外的所有字符,包括你看不见的空格或者回车,制表符号,都是作为输出内容会response到客户端的,这样就有可能会产生意想不到的事情。例如文件里面使用了header函数,这个文件同时又包含了另外一个文件,并且被包含的文件的php标签外有空字符,这个时候会报header already send的错误。我们查看一些网页的源代码看到的开头部分有很多空格和换行,就是因为这个原因导致的。
解决方案建议:
库文件、或者一些class文件等只有纯php代码的文件不推荐加结束标签。
相信本文所述对大家的PHP程序设计有一定的参考价值。
相关文章
Snoopy类使用小例子
下载:http://sourceforge.net/projects/snoopy/
今天才发现这个好东西,赶紧去下载了来看看,是用的parse_url
还是比较习惯curl
2008-04-04
php+redis实现消息队列功能示例
这篇文章主要介绍了php+redis实现消息队列功能,结合实例形式分析了php+redis创建与使用消息队列的相关操作技巧,需要的朋友可以参考下
2019-09-09
php 攻击方法之谈php+mysql注射语句构造
由于PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困难,尤其是注射时语句的构造方面更是个难点,本文主要是借对Okphp BBS v1.3一些文件得简单分析,来谈谈php+mysql注射语句构造方式,希望本文对你有点帮助。
2009-10-10
PHP中内存溢出问题的分析与解决详解
PHP作为一种广泛使用的服务器端脚本语言,在处理大量数据或复杂任务时,常常会遇到内存溢出的问题,本文将探讨解决PHP内存溢出问题的最佳实践,大家可以根据需求进行选择
2025-03-03
php排序算法实例分析
这篇文章主要介绍了php排序算法,结合实例形式分析了php数据查询、排序、数组去重、遍历与排序的相关操作技巧与注意事项,需要的朋友可以参考下
2016-10-10
php中mail函数发送邮件失败的解决方法
这篇文章主要介绍了php中mail函数发送邮件失败的解决方法,涉及针对Linux运行平台相关组件的配置技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
2014-12-12
最新评论