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 相关文章推荐
杏林同学录(四)
Oct 09 PHP
php daodb插入、更新与删除数据
Mar 19 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php字符串过滤与替换小结
Jan 26 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
laravel config文件配置全局变量的例子
Oct 13 PHP
Laravel实现批量更新多条数据
Apr 06 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 XML error parsing SOAP payload on line 1
2010/06/17 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
破解Session cookie的方法
2006/07/28 Javascript
动态控制Table的js代码
2007/03/07 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
numpy实现RNN原理实现
2021/03/02 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
生日宴会答谢词
2014/01/09 职场文书
应急处置方案
2014/06/16 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
单位政审意见范文
2015/06/04 职场文书
实践论读书笔记
2015/06/29 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
全民创业工作总结
2015/08/13 职场文书
个人向公司借款协议书
2016/03/19 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python