php好代码风格的阶段性总结


Posted in PHP onJune 25, 2016

本文总结了php好代码的风格,分享给大家供大家参考,具体如下:

1、避免使用魔数

if($age<18){
}

这个18不太明白为什么要这样子。

可以将28定义在一个变量里面,这个变量命名表明了这个值的含义

$adult_age = 18;//成年的分界点年龄
if($age<$adult_age){
}

2、函数的返回结果:不要使用一个变量来存储返回结果

一旦你知道了返回结果,就应该马上返回。这样做的好处,是可以减少错误。

3、函数带有很多的参数。不要超过三个

如果参数很多,尽量聚合成一个model传递进去。比如一个数组,一个实例都可以。

太多的参数为什么影响方法的稳定性呢?

比如修改就会变得很麻烦。

我现在明白了。这个方法需要新加一个参数传递进去,那么原来调用这个方法的代码,就得跟着改变。

在做接口的时候,经常会遇到类似的问题。

function forgot($userName, $email, $email_url, $format = 'json')

上面是三个参数。

原来别人调用这个函数是,

forgot($userName, $email, $email_url, $format = 'json');

现在需求要变化了,需要新增加一个参数。怎么办?

原来的代码就要跟着修改。方法并不稳定。要么就重新开一个方法适应新的需求。要么就修改调用方的调用代码。

但是有种办可以避免这种问题

把原来传递参数做成数组形式,如下:

forgot($params=array(),$format = 'json');

聚合成一个数组。这样可以加任意多个参数。

如何理解:php引擎的内置函数,带有多个参数的情况呢?

设计缺陷?

4、方法的参数中含有布尔参数。

这意味着,这个方法不是完成一个单一的目标。违背了单一职责。增加了复杂性。

留给大家思考:如何理解我们现在代码中的问题呢

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php array_flip() 删除数组重复元素
Jan 14 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
async和DOM Script文件加载比较
Jul 20 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
PHP实现的CURL非阻塞调用类
Jul 26 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
php实现根据身份证获取精准年龄
Feb 26 PHP
php编译安装php-amq扩展简明教程
Jun 25 #PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 #PHP
php自动载入类用法实例分析
Jun 24 #PHP
php模拟post上传图片实现代码
Jun 24 #PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 #PHP
java微信开发之上传下载多媒体文件
Jun 24 #PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 #PHP
You might like
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
程序员编程十条戒律
2009/07/09 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
对python:print打印时加u的含义详解
2018/12/15 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
安全目标责任书
2014/07/22 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
六一活动主持词
2015/06/30 职场文书
会计实训总结范文
2015/08/03 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers