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_sum() - 计算数组元素值之和
Oct 29 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
wordpress安装过程中遇到中文乱码的处理方法
Apr 21 PHP
php批量删除超链接的实现方法
Oct 19 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
php的4种常用运行方式详解
Dec 22 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP大文件分割分片上传实现代码
Dec 09 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读取XML值的代码(推荐)
2011/01/01 PHP
php中大括号作用介绍
2012/03/22 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
vue中touch和click共存的解决方式
2020/07/28 Javascript
python实现数组插入新元素的方法
2015/05/22 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
服务生自我鉴定
2014/01/22 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2014年车间工作总结
2014/11/21 职场文书
欠款证明
2015/06/24 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang