通常PHP文件,都是以<?php开始,以?>结束。而且,我一直以为?>是必不可少的。来到新浪微博实习之后,看到有些PHP文件的结尾是没有?>的。故产生疑问。
对这个问题查了一下资料,现总结如下:
(1)纯PHP代码文件中,?>不是必须的。
(2)省略?>的好处在于,当某个文件被其他文件引用时,可以避免输出一些不可见的字符,从而影响session、header
a.php
//code
//这里有看不见的字符,空格或者回车
b.php
include("a.php");
session_start();
这种情况下,b.php就会报错。
因此建议,在纯PHP代码文件中,省略?>。
注:如有不准确的地方,欢迎批评指正。
class UploadFile{
private $max_size = '2000000'; //设置上传文件的大小,此为2M
private $rand_name = true; //是否采用随机命名
通常
PHP文件,都是以<?
php开始,以?>结束。而且,我一直以为?>是必不可少的。来到新浪微博实习之后,看到有些
PHP文件的
结尾是没有?>的。故产生疑问。
对这个问题查了一下资料,现总结如下:
(1)纯
PHP代码
文件中,?>不是必须的。
(2)
省略?>的好处在于,当某个
文件被其他
文件引用时,可以避免输出一些不可见的字符,从而影响session、header
a.
php
<?
php
//code
//这里有看不见的字符,空格或者回车
为什么纯php文件不建议使用结束标签?
php的开始结束标签为<?php...?>或者短标签<?...?>, 在php文件中,当php有结束标签时,php只会执行标签里面的文本,如果是纯php文件时,不建议使用结束标签
因为使用了php结束标签,可能会存在以下影响:
php会将脚本执行外的回车、空格、制表符都响应到服务端,所以如果在结束标签后面存在多余的空格或者回车,那么会影响脚本的执行结果,而如果没有结束标签的话,那么多余的空格回车不会对程序有影响
<?php
echo "开
于是查了一下:
文件末尾的
PHP 代码段结束标记可以不要,有些情况下当使用include()或者require()时
省略掉会更好些,这样不期望的白空格就不会出现在
文件末尾,之后仍然可以输出响应标头。在使用输出缓冲时也很便利,就不会看到由包含
文件生成的不期望的白空格。
加
结尾的:之后的内容视为 纯文本直接输出,直到再次碰到 <? 或 <?
php
不加的:之后的内容视为
PHP 代码,除非没有代码了。
像一些函数库,类库这类
文件,不加
结尾比较好。这样当它们被其他
文件包含的时候,可以避免一些因为有输出而导致的错误。比如
<?
PHP
//如果 a.
php 有
结尾,并且后面多一个回车或空格。下面这行一定报错...
在 C 语言中,分号是语句结束的标志,除了某些特殊情况外,每个语句都必须以分号结尾。在以下情况下可以省略分号:
1. 在 for 循环的循环体中,如果只有一条语句,可以省略分号。
2. 在结构体定义中,最后一个成员后面的分号可以省略。
3. 在 #define 宏定义中,最后一行的分号可以省略。
但是,为了代码的可读性和规范性,建议不要省略分号。