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 09 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 PHP
php使用event扩展的io复用测试的示例
Oct 20 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
Admin generator, filters and I18n
2011/10/06 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python套接字流重定向实例汇总
2016/03/03 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
python Tornado框架的使用示例
2020/10/19 Python
Servlet的生命周期
2013/08/25 面试题
党支部公开承诺书
2014/03/28 职场文书
中班开学寄语
2014/04/04 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
单位委托函范文
2015/01/29 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书