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写杨辉三角实例代码
Jul 17 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
PHP在线书签系统分享
Jan 04 PHP
php中this关键字用法分析
Dec 07 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 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 JS Ip地址及域名格式检测代码
2013/09/27 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
Python字符遍历的艺术
2008/09/06 Python
Python threading多线程编程实例
2014/09/18 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
在keras中实现查看其训练loss值
2020/06/16 Python
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
请说出以下代码输出什么
2013/08/30 面试题
中专毕业生自我鉴定
2013/11/21 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
精神文明单位申报材料
2014/05/02 职场文书
学校献爱心活动总结
2014/07/08 职场文书
119消防日活动总结
2014/08/29 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers