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 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
php 面向对象的一个例子
Apr 12 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
PHP中的Streams详细介绍
Nov 12 PHP
详细解读PHP中接口的应用
Aug 12 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
PHP7修改的函数
Mar 09 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面向对象编程快速入门
2006/12/14 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php生成随机颜色的方法
2014/11/13 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
简单易用的倒计时js代码
2014/08/04 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python金融数据可视化汇总
2017/11/17 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python中psutil的介绍与用法
2019/05/02 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
支教自我鉴定
2014/01/18 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
应用数学专业求职信
2014/03/14 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2014年售票员工作总结
2014/11/19 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
长城导游词400字
2015/01/30 职场文书
个人年终总结怎么写
2015/03/09 职场文书
整改通知书
2015/04/20 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android