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 相关文章推荐
joomla内置的表单验证功能使用方法
Jun 11 PHP
php函数之子字符串替换 str_replace
Mar 23 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php实现购物车功能(上)
Jul 23 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
php外部执行命令函数用法小结
Oct 11 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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 mysql事务问题实例分析
2016/01/18 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
js实现验证码干扰(静态)
2021/02/22 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
使用Python绘制图表大全总结
2017/02/11 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
python破解同事的压缩包密码
2020/10/14 Python
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
司机检讨书
2014/02/13 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
中学音乐课教学反思
2016/02/18 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL