我的编码规范:参照ECSHOP
编码规范
1.变量
$current_user;
$name;
TIPS:名称应当是描述性的,并且简明。必要的时候才去缩写,比如str_user_info,
不要string_user_infomation过于冗长.
2.函数
function get_username(){};
TIPS:命名和变量命名准则一样,具有描述性和简明.并且要考虑函数的返回值,
具有返回值函数不要忘记return;
3.类
文件命名 cls_person.php
class cls_person{};
TIPS:类的命名前缀加上 cls;
5.库文件
lib_common.php
里面包含各种功能函数
TIPS:前缀 lib
4.if
(1) if (){}else{}
TIPS:始终包含大括号,不要if ( ) do_stuff();
(2)多条件
正确:
if ($val == 1 && function_exists(‘ob_gzhandler'))
错误:
if (function_exists(‘ob_gzhandler’) && $val == 1)
TIPS:多条件的时候,常量比较放在前面
6.注释
(1)/*注释内容*/
(2)define('IN',true); //注释内容
TIPS://注释要求加空格
(3)函数注释
**
* 创建图片的缩略图
*
* @access public
* @param string $img 原始图片的路径
* @param int $thumb_width 缩略图宽度
* @param int $thumb_height 缩略图高度
* @param strint $path 指定生成图片的目录名
* @return mix 如果成功返回缩略图的路径,失败则返回false
*/ TIPS:函数注释应该包括输入、输出 、描述、错误等
7.符号之间空格,括号不加空格
if (($i < 7) && ($j>8))
8.字符串连接.两侧加上空格
'this is ' .$user_name. ' and lucy';
9.运算符的优先级
用括号强调一个表达式
$bool=(($i < 7) && (($j < 8) || ($k == 4)))
10.空行的使用
(1)<?php 后加空行
(2)?>前面加空行
(3)两个函数之间需要有空行
(4)return die exit等前面还有语句的
11.sql语句
(1)SELECT feild1 AS something,field2,field3
FROM `table` a,`table` b
WHERE (this = that) AND (this2 = that2)
(2)INSERT INTO 'table'(field1,field2,field3) VALUES ('vol1','vol2','vol3')
(3)不要使用SELECT * FROM table这种语句 SELECT field1,field2 FROM 'table' limit start offset;
12.php中有单引号替代双引号
13.require_once include_once 替代 require include
14.简化预算符
/* 错误 */
$array[++$i] = $j;
$array[$i++] = $k;
/* 正确 */
$i++;
$array[$i] = $j;
$array[$i] = $k;
$i++;
15.条件表达式只应该做简单的事情,只用来赋值,不要用他们来做复杂的事情
/* 不应该使用它们的地方 */
(($i < $size) && ($j > $size)) ? do_stuff($foo) : do_stuff($bar);
/* 使用它们的合适地方 */
$min = ($i < $j) ? $i : $j;
/* 老办法 */
if ($forum) ...
/* 新办法 */
if (!empty($forum)) ...
if (isset($forum))...
16.变量初始化
无论是函数的参数还是通过URL传递的变量,在调用之前均必须对其进行预处理以及设定默认值。
字符串必须进行trim的处理,并且如果变量的值是在我们预计的范围之内,
需要对变量的非法值做出相应的处理;对于数字型的变量则需要进行intval或者floatval的处理。