PHP编码规范
命名====================================
类命名
名字的首字母使用大写
各单词首字母使用大写,其他的字母均使用小写
不要使用下划线 _ 例如:
class NameOneTwo
class Name
方法命名
名字首字母小写,使用单词首字母大写或 下划线 _ 链接各单词,下划线 _ 后单词首字母小写
class NameOneTwo {
function doIt_note(){};
function handleError(){};
}
类属性命名
属性命名应该以字符 m 为前缀。
前缀 m 后采用于类命名一致的规则。
前缀'm'防止类属性和方法名发生任何冲突。方法名和属性名经常会很类似,特别是存取元素。
例如
class NameOneTwo {
var mErrorNumber;
var mrName;
function varAbc(){};
}
类静态变量
静态变量应该带前缀 s
例如
class NameOneTwo {
static $msStatus = 0;
}
变量命名
规则同方法命名
全局常量
全局常量所有字母应该大写,并以 _ 作为分界
例如
define("A_GLOBAL_CONSTANT", "Hello world!");
文件夹文件名
文件夹命名一般采用英文,长度一般不超过15个字符,命名采用小写字母。一些常见的文件夹命名如:images或img(存放图形文件),flash(存放Flash文件),style或css(存放CSS文件),scripts或js(存放Javascript脚本),media(存放多媒体文件)等。
文件名称统一用小写的英文字母、数字和下划线的组合。
注释====================================
注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害
程序块的注释常采用 /*…*/ ,行注释一般采用 //…
所有的PHP代码源文件都应该在开头有一个C语言风格的注释,其中列出类名、功能、版本信息、日期、作者
/*
* 功能
* 日期
* 作者
* 版本
* 版权
*/
例如
/**
* 代理管理中心模块
*@date 2015.5.22
* @author 张某某
* @since v2.0
* @copyright Copyright (c) 2013-2015 某某科技
*/
方法注释例如
/**
*用户中心右边,小导航(作用)
*
* @param string $menu_type 导航类型
* @param string $menu_key 当前导航的menu_key
* @param array $array 附加菜单
* @return array $arrUser
*/
如果时间紧迫至少写明方法作用,例如
/**
* cms专题编辑
*/
如果对文件进行了修改,应该在对应代码前面说明修改目的、修改日期、修改人,并且标识出修改部分的起止位置
……
/*
* 修改目的
* 修改日期
* 修改人
* 版本
*/
……
//修改人修改起始
……
……
//修改人修改结束
……
变量初始化====================================
尽量声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。
布局====================================
方法与方法之间以空行分隔
统一一个制表(TAB)符作为缩进排版的一个单位。
操作符与变量之间用空格分隔
多个参数列表中(方法,或数组里),参数逗号的后面应该有空格
位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码。
大括号{}使用
for, if, while, do, switch 等关键词后面的 { 要与关键字同行
例如
if(true){
......
}
{ }之内的代码块在 { 下边缩进一个Tab处左对齐。不允许用空格代替Tab
编辑器内自动格式化缩进设置成Tab
声明块的定位
只在代码块的开始处声明变量。(一个块是指任何被包含在大括号"{"和"}"中间的代码。)不要在首次用到该变量时才声明。
多变量根据系统执行调用顺序依次“归类”声明。同时为多个变量赋值时,同类别后面的等号用空格控制对齐
例如
function myMethod(){
// 方法块的开始
$name = $_GET['name'];
$age = $_GET['age'];
$sex = $_GET[' sex '];
$model1 = Model();
$model2 = Model();
$int1 = 0;
$int2 = 0;
if ($condition){
int $int2 = 0; // "if"块的开始
...
}
}
PHP代码块用<?php ?>来标记。禁止用<? ?>等
小括号、关键词和函数空格规则
关键字之后要留空格,否则无法辨析关键字。不要把小括号和if、for、while等关键词紧贴在一起,要用空格隔开它们,以突出关键字
方法名后面的小括号要紧贴方法名,不要留有空格
if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加 {} 。这样可以防止书写失误
switch 格式,所有 case 对齐在switch下的一个缩进,所有case对应的执行语句在case下的一个缩进
如果一个case分支执行完后继续进入下一个case执行,那么必须写注释
行长度
尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。
换行
当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:
- 在一个逗号后面断开
- 在一个操作符前面断开
- 新的一行应该与上一行同一级别表达式的开头处对齐
- 如果以上规则导致代码混乱或者使代码都堆挤在右边,那就代之以缩进一个制表符