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配置文件中最常用四个ini函数
Mar 19 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
分享php多功能图片处理类
May 15 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
PHP微信支付开发实例
Jun 22 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
PHP单元测试配置与使用方法详解
Dec 27 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获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
js实现目录定位正文示例
2013/11/14 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
横向对比分析Python解析XML的四种方式
2016/03/30 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
np.dot()函数的用法详解
2020/01/17 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
python实现猜拳游戏
2020/03/04 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
自荐信格式简述
2014/01/25 职场文书
店长职务说明书
2014/02/04 职场文书
报名委托书
2015/01/29 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python