(转)详解PHP编码规范文档

2021-06-16 11:04

阅读:658

一、命名规范:

1. 常量的命名

1) 字母,全部大写,使用“_” 分隔单词。

如:DEFINE(“PHP_DEMO_PRINT”,”hEllo world”);

 

2. 变量的命名

1) 使用驼峰结构命名,即以小写字母开头,从第二个单词开始,每个单词的第一个字母大写。

如:$getElement=”myodbc”;

2) 全局变量以“g_”开头,非全局变量不要以“g_”开头

如:$g_i;

3) 所有的“临时”变量使用完毕后必须unset。

4) 不允许出现字母完全相同,仅大小写不同的命名。

5) 不允许在命名的结尾使用下划线。

6) 不要出现单字母的变量,如i,j,k(只有在控制循环数时且循环代码条数在3条以内,才可以考虑使用)

7) 变量名中不能出现数字。

8) 变量名最好能表示出是数值型还是字符串型变量。

如:$myCount_i表示数值型变量,$myString_s表示字符串。

9) 如果有计算限定符,把限定词加到名字的最后。

如:$calTimeStart 、 $calTimeEnd.

 

3. 函数的命名

1) 函数名全部小写,单词之间可以使用下划线。

2) 存取对象的函数名使用 set_xxx() 和get_xxx() 形式。

3) 布尔类型的函数名可以使用 isxxx() 形式。

4) 函数名中不能出现数字。

 

4. 类命名

1) 类名用第一个字母大写的英文正常语序准确描述类的含义。如:Employee。

2) 类的方法命名规则与函数的命名规则一致。

3) 类的属性名采用全字母小写。

 

5. 文件的命名

1) 文件名字符全部采用小写

2) 文件名称要能反映出其内容及功能。

如:储存有类的文件,name.class.php;存有函数的文件可采用name.func.php或name.inc.php来命名;配置文件,name.cfg.php或者config.inc.php 。

 

二、注释规范:

1. 变量的注释

1) 变量的同行后空一格使用双斜线注释。

如:$myDemo = ’a demo’; //这是行内注释

 

2. 函数与函数体的注释

/*

@作者:xxxx、bbb

*/

//描述函数的功能和返回值和引用方法

function  ff(aaa, bbb)  {

……

// 普通夹杂在代码里的单行注释

……

return false;

}

 

3. 文件的注释

1) 文件功能、创建人信息、时间。

2) 已知的Bug。当然最好是修正所有错误,但可能暂时还没有办法修正错误,或暂时没有精力去修改

3) 开发和维护文件的历史列表。记录每一次修改的作者、日期、修改的内容

4) 对主要的算法必须加以解释说明,主要的流程必须给出引导性的说明

5) 标准格式

/**

 

* @description 描述类的功能、用途、现存BUG,设计方法。

* @author 作者姓名

* @version 最后修改日期(日期格式建议采用:年-月-日格式,例如:2008-04-05)

*/

如果对已经版本化的类进行了修改,需要按照如下格式为每一次修改附加修改历史记录: 

* @modify

* 修改人 + 修改日期(日期格式建议采用:年-月-日格式,例如:2008-04-05)

* 修改说明

 

 

三、代码书写风格

1. 总原则

1) 一行代码尽量简短,并且保证一行代码只做一件事。

2) 使用圆括号来界定操作的顺序。不要让别人判断复杂的操作优先级。

3) 合理使用空行,划分逻辑处理。

4) 代码缩进使用TAB键(设定四个空格)。

5) 建议遵循三十秒原则。如果另一个程序员无法在三十秒之内了解你的函数做了什么,如何做以及为什么要这样做,那就说明你的代码是难于维护的,必须得到提高。

 

2. 控制结构

 

1) If 规范: 

1. else 后面的if,另起一行 

2. 把对比常量,放在等式左边 

3. 分支要加上注释,注释前面加一个(TAB)缩进

 

if (6 == $errorNum)  { //注释1

..

}  else  {

if (5 == $num)  { //注释2

}  else  {

}

}

 

2) Switch规范: 

switch (…) {

case 1: //分支1注释

…   

// 这里没有break,直接转到下个case,须要加注释   

case 2:  {  //分支2注释  

$v = get_week_number(); // 创立变量,在{}之中   

…  

}    

break;    

default:  

}

 

3) For规范: 

For($i=1;$i

……

}

4) While 规范: 

While ($i

….

}

 

5) Foreach  规范: 

 

Foreach ($arr  as  $v => $k)  {

….

}

 

四、代码书写风格

1. 使用$row[‘id’]方式取数据,不要使用$row[id]方式。

2. 纯字符串使用单引号包含。

3. 删除未使用的变量

4. 执行for循环之前确定最大循环数,不要每循环一次都计算最大值。

5. 循环内部不要声明变量,尤其是大变量:对象(语言通用)。

6. 执行字符串替换前用strpos()函数判断是否存在后再执行替换函数。

7. 用foreach代替while遍历数组。遍历数组时foreach的效率明显高于while循环

8. str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍

9. 当执行变量$i的递增或递减时,$i++会比++$i慢一些。这种差异是PHP特有的

10. 用@屏蔽错误消息的做法非常低效。


评论


亲,登录后才可以留言!