有人说php的结束标签可以不要
比如
<?php echo 'hello world';
我看了一下,对于纯php文件是可以的。
貌似很多高手都是省略的。还有一堆理由。
但是我宁愿作为一个低手,还是用结束标签。
有人说php的结束标签可以不要
比如
<?php echo 'hello world';
我看了一下,对于纯php文件是可以的。
貌似很多高手都是省略的。还有一堆理由。
但是我宁愿作为一个低手,还是用结束标签。
在纯php文件中不加php结束符是一个好习惯,php结束符仅用于在php与html混写时标示php代码结束。对于纯php文件而言,这个文件结束了,代码就结束了,所以没必要加上结束符。
为什么说这是一个好习惯?因为如果不加结束符可以让你避免向浏览器发送一些不必要的字符,因为我们非常有可能在结束符后面不小心打上一些空格或者制表符之类的不可见字符,它们在编辑器中不容易被发现,而最后在php执行的时候,会被作为网页字符发送给浏览器,我们查看一些网页的源代码会发现,他们的开头有很多空格和换行,就是因为这个原因。这不仅向浏览器发送了一些不必要的流量,而且对于某些浏览器而言,如果网页源代码没有以<!DOCTYPE
或者其它html开头,可能会引起错位。
4 回答13.4k 阅读✓ 已解决
5 回答7.8k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
1 回答977 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.5k 阅读
2 回答1k 阅读
php的结束标签,在一些编码规范里面,纯php脚本文件里是必须忽略的,包括我在内是非常赞同这种做法的。
为什么呢?因为php只能运行在php标签里面的脚本,在脚本之外的所有字符,包括你看不见的空格或者回车,制表符号,都是作为输出内容会response到客户端的。这样就有可能会产生意想不到的事情。比如说joyqi说的问题,不过这个还好问题不是很大,但是假如你在一个文件里面使用了header函数,这个文件同时又包含了另外一个文件,并且被包含的文件的php标签外有空字符,这个时候会报header already send的错误。
为了避免这种错误,在编码规范里面经常会规定库文件,或者一些class文件等只有纯php代码的文件是不能加结尾的?>结束符的
参考 http://framework.zend.com/manual/en/c... 中的general section下面那句话