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 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
php session应用实例 登录验证
Mar 16 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php设计模式 State (状态模式)
Jun 26 PHP
PHP文件操作实现代码分享
Sep 01 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
php代码检查代理ip的有效性
Aug 19 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
php 修改密码实现代码
2017/05/24 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python海龟绘图实例教程
2014/07/24 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Python argparse模块应用实例解析
2019/11/15 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
就业协议书范本
2014/04/11 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
学校师德师风整改措施
2014/10/27 职场文书
旷工辞退通知书
2015/04/17 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
员工旷工检讨书
2015/08/15 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书