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之COOKIE支持详解
Oct 09 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
php中autoload的用法总结
Nov 08 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 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
BBS(php & mysql)完整版(五)
2006/10/09 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
JS delegate与live浅析
2013/12/21 Javascript
javascript基本类型详解
2014/11/28 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python中字符串内置函数的用法总结
2018/09/13 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
python Gabor滤波器讲解
2020/10/26 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
最经典的商业地产项目广告词
2014/03/13 职场文书
运动会稿件100字
2014/09/24 职场文书
合同审查法律意见书
2015/06/04 职场文书
常住证明范本
2015/06/23 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python