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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
PHP 正则表达式常用函数
Aug 17 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
Laravel5.1 框架路由基础详解
Jan 04 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水印技术
2007/02/14 PHP
php判断变量类型常用方法
2012/04/24 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python实现网站微信登录的示例代码
2019/09/18 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
父亲生日宴会答谢词
2014/01/10 职场文书
党的群众路线学习材料
2014/05/16 职场文书
2014最新离职证明范本
2014/09/12 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
目标责任书格式范文
2015/05/11 职场文书
鸦片战争观后感
2015/06/09 职场文书
2019思想汇报范文
2019/05/21 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript