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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
php 魔术函数使用说明
Feb 21 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
php引用返回与取消引用的详解
Jun 08 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
php缓冲输出实例分析
Jan 05 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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 实现explort() 功能的详解
2013/06/20 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
javascript处理table表格的代码
2010/12/06 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
深入分析jQuery.one() 函数
2020/06/03 jQuery
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
python lxml中etree的简单应用
2019/05/10 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
python3 kubernetes api的使用示例
2021/01/12 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
办公室内勤工作职责
2013/12/11 职场文书
积极分子思想汇报
2014/01/04 职场文书
协议书模板
2014/04/23 职场文书
2014年卫生工作总结
2014/11/27 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
邀请函模板
2015/02/02 职场文书
七年级作文之英语老师
2019/10/28 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python