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中使用Oracle数据库(6)
Oct 09 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
Nov 19 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php中strtotime函数性能分析
Nov 20 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
laravel 执行迁移回滚示例
Oct 23 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
Zend Framework数据库操作技巧总结
2017/02/18 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
js获取select选中的option的text示例代码
2013/12/19 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python设置检查点简单实现代码
2014/07/01 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python 文件管理实例详解
2015/11/10 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
python递归函数用法详解
2020/10/26 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
财务助理岗位职责
2013/11/10 职场文书
生产班组长岗位职责
2014/01/05 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
2014年居委会工作总结
2014/12/09 职场文书
行政申诉状范文
2015/05/20 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript