什么情况下可以不写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
, 不写
, 闭合标签
“?&gt;”
php闭合标签、php5 不支持 闭合标签、html标签闭合检查工具、检查html标签闭合、自闭合标签,以便于您获取更多的相关知识。

时间: 2024-08-03 07:11:25

什么情况下可以不写PHP的闭合标签“?&gt;”_php技巧的相关文章

PHP下编码转换函数mb_convert_encoding与iconv的使用说明_php技巧

不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码. mb_convert_encoding的用法见官方: http://cn.php.net/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 复制代码 代码如下: <?php header(&qu

Linux系统下使用XHProf和XHGui分析PHP运行性能_php技巧

什么是性能分析?性能分析是衡量应用程序在代码级别的相对性能.性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调用图.性能分析的行为也会影响应用性能. 什么时候应该进行性能分析? 在考虑是否进行性能分析时,你首先要想:应用是否存在性能问题?如果有,你要进一步考虑:这个问题有多大? 如果你不这样做,将会陷入一个陷阱--过早优化,这可能会浪费你的时间. 为了评断应用是否存在性能问题,你应该确定性能目标.例如,100 个并发用户的响应时间小于 1s .然后,你需要进行基准测

linux下使用ThinkPHP需要注意大小写导致的问题_php技巧

弄了一下午,偶然想起linux是识别文件大小写的,查看了一下代码,发现实例化类的时候并没有注意文件大小写.如 $dao = D("inventoryview") 对应的视图文件是InventoryViewModel.class.php.这样在windows下跑是没问题的,但是在linux下,需要写成$dao = D("InventoryView"). 哎,小细节容易导致大问题啊.还好解决了~~嘿嘿

windows7下安装php的imagick和imagemagick扩展教程_php技巧

最近的PHP项目中,需要用到切图和缩图的效果,在linux测试服务器上很轻松的就安装好php imagick扩展.但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享. 1. 下载 ImageMagick 下载地址:http://imagemagick.org/script/binary-releases.php 下载最新版本,ImageMagick-6.8.6-9-Q16-x86-dll.exe 2. 安装 ImageMagick 安装 ImageMagick 到 PC 上.

asp伪静态情况下实现的utf-8文件缓存实现代码_应用技巧

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.CodePage=65001%> <% Response.Charset="UTF-8" %> <% '该程序通过使用ASP的FSO功能,减少数据库的读取.经测试,可以减少90%的服务器负荷.页面访问速度基本与静态页面相当. '使用方法:将该文件放在网站里,然后在需要引用的文件

Windows2003下php5.4安装配置教程(IIS)_php技巧

本文与<Windows2003下php5.4安装配置教程(Apache2.4)>(点击打开链接)为姊妹篇,只是php所用的服务器有点不同,这里一个是Apache2.4,一个是Windows2003自带的IIS服务器. 一.在Windows2003安装IIS 1.首先打开Windows2003的控制面板,查看是否有"管理工具",没有也不要紧,点击"添加或删除程序".有的话,可以直接进入第二步,IIS的配置. 2.在弹出的窗口,选择添加/删除Windows组

php下统计用户在线时间的一种尝试_php技巧

下面列出几个比较常用的方法: 首先介绍一下所涉及的数据表结构,四个字段: 复制代码 代码如下: uid<int(10)> :用户id session_id<varchar(40)> :用户登录后系统产生的session_id,PHP可是使用session_id()函数获取 login_time<int(10)> :登录时间 logout_time<int(10)> :登出时间 1. 客户端定时发送请求到服务器端.实现方法是在用户登录后,将uid,sessio

Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置_php技巧

先从各官方网站下了APACHE2.050.PHP5.MYSQL4.0.20.PHPMYADMIN2.57  apache_2.0.50-win32-x86-no_ssl.msi  php-5.0.0-Win32.zip  mysql-4.0.20d-win.zip  phpMyAdmin-2.5.7.zip  操作系统 win2003 系统盘为: D盘  第一步: 安装apache 并配置支持PHP  点击安装文件apache_2.0.50-win32-x86-no_ssl.msi  将apac

Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境_php技巧

Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容易手动搭建,可控性很高. Brew brew对于mac,就像apt-get对于ubuntu,安装软件的好帮手,不能方便更多- brew的安装方式如下: 复制代码 代码如下: ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/i