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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
NOT NULL 和NULL
Jan 15 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
PHP 类商品秒杀计时实现代码
May 05 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 PHP
php生成图形(Libchart)实例
Nov 06 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
thinkPHP中_initialize方法实例分析
Dec 05 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
php数组转成json格式的方法
2015/03/09 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
.net笔试题
2014/03/03 面试题
药品促销活动方案
2014/02/14 职场文书
导游个人求职信
2014/04/25 职场文书
企业宣传口号
2014/06/12 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
拾金不昧表扬信
2015/01/16 职场文书
远程教育培训心得体会
2016/01/09 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
Pandas搭配lambda组合使用详解
2022/01/22 Python
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏