PHP 代码规范小结


Posted in PHP onMarch 08, 2012

命名规范
Θ 类文件都以.class.php为后缀,使用驼峰法命名,并且首字母大写,例如 Pay.class.php;
Θ 类名和目录_文件名一致。例如:类名Zend_Autoloader的目录是Zend/Autoloader.class.php;
Θ 函数的命名使用小写字母和下划线的方式。例如:get_client_ip;
Θ 方法的命名使用驼峰法,首字母小写或者使用下划线"_",例如listComment(),_getResource(),通常下划线开头的方法属于私有方法;
Θ 属性的命名使用驼峰法,首字母小写或者使用下划线"_",如$username,$_instance,通常下划线开头的属性属于私有属性;
Θ 常量以大写字母和下划线"_"命名,如"HOME_URL";
常用名词
1>list名词(单数),如listApple,一看我们就知道读取苹果列表,我们没有必要写成getApples或者listApples或readApples——因为get我们规定一般用于读取单个数据,如getApple.listApples不加s我们也知道是取苹果列表(保证尽量缩短变量命名);
2>get名词(单数);
3>名词Total,表示某个东西的总数。如expenseTotal;
4>found:表示某个值是否已经找到;
5>uccess或ok:一项操作是否成功;
6>done:某个工程是否完成;
7>error:是否有错误发生;
8>result:返回的结果
代码重构
1.函数或者方法体内的代码尽量控制在一个屏幕内。
2.类中不使用的方法随机删除。
3.修改别人的类中方法,要签名。
4.在每个模块内写个readme文件(用于比较复杂业务的说明或代码说明)。
5.尽量让每个类做自己的事,每个函数做一件事。
常用代码
用&&或||简化操作
简化前:

$a=1; 
$b = 0; 
if(isset($a)){ 
$b=1; 
print($b."\n"); 
} 
if($b!=0){ 
print($b."\n"); 
}

简化后:
$a=1; 
$b = 0; 
isset($a) && ($b=1) && print($b."\n"); 
$b == 0 || print($b."\n");

明显代码看起来更加整齐,更加简单!
判断"=="时,把常量放在前面
之前:

$a = 1; 
if($a = 1){ 
echo '$a == 1'; 
}

之后:
$a = 1; 
if(1 = $a){ 
echo '$a == 1'; 
}

明显,常量放在前面的话,编译器就能判断错误。
正规格式:
$a = 1; 
if(1 == $a){ 
echo '$a == 1'; 
}

查找表法
之前:
/*错误码:4,5,7,8的时候返回状态1,错误码是1,3,6返回状态2*/ 
$error = 4; 
$state = 0; 
if($error == 4 || $error == 5 || $error == 7 || $error == 8){ 
$state = 1; 
} 
if($error == 1 || $error == 3 || $error == 6){ 
$state = 2; 
} 
echo "$state \n";

之后:
/*错误码:4,5,7,8的时候返回状态1,错误码是1,3,6返回状态2*/ 
$error = 4; 
$state = 0; 
$arr = array(4 => 1, 5 => 1, 7 => 1, 8 => 1, 1 => 2, 3 => 2, 6 => 2); 
isset($arr[$error]) && ($state = $arr[$error]); 
echo "$state \n";

明显代码更加凝练,更加清楚,更易懂,速度也更快!
总结
本来想把什么设计模式也往常用代码里放置,但是太多了,不太好放。这些只是微部而已!
大家如果有更好的写法的话,可以留言。
PHP 相关文章推荐
PHP用户指南-cookies部分
Oct 09 PHP
PHP 全角转半角实现代码
May 16 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
色色整理的PHP面试题集锦
Mar 08 #PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 #PHP
php打造属于自己的MVC框架
Mar 07 #PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 #PHP
php 操作符与控制结构
Mar 07 #PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 #PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 #PHP
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
详解Python3注释知识点
2019/02/19 Python
Python3模拟登录操作实例分析
2019/03/12 Python
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
软件工程专业推荐信
2013/10/28 职场文书
机械设计专业应届生求职信
2013/11/21 职场文书
高中生学习的自我评价
2013/12/14 职场文书
求职信写作要突出重点
2014/01/01 职场文书
医院检讨书范文
2014/02/01 职场文书
大学同学会活动方案
2014/08/20 职场文书
办护照工作证明
2014/10/01 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
接待员岗位职责
2015/02/13 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
离婚起诉书范本
2015/05/18 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python