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 相关文章推荐
第十二节--类的自动加载
Nov 16 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
浅析iis7.5安装配置php环境
May 10 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
php实现图片按比例截取的方法
Feb 06 PHP
php压缩文件夹最新版
Jul 18 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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版本实现代码
2012/09/15 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
discuz目录文件资料汇总
2014/12/30 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
详解js异步文件加载器
2016/01/24 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
JS.findElementById()使用介绍
2013/09/21 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python网站验证码识别
2016/01/25 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
python如何对实例属性进行类型检查
2018/03/20 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python生成带有表格的图片实例
2019/02/03 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
聘任书模板
2014/03/29 职场文书
会计求职自荐信
2014/06/20 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
大学生创业计划书
2019/06/24 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL