内容简介:这几个编码小技巧将令你 PHP 代码更加简洁
保持代码简洁和高可读性远远要比我们想象的要难,有时候甚至比持续架构设计都要难。这里收集了一些可能对你重构代码有用的 代码片段 供大家参考。
##数组转化
我们常常需要在一个函数里面接受一个支持字符串或者数组类型数据的参数。可以使用适当的类型转化方式将字符串类型转化成数组类型,来取代类型检测。
// 没有类型转化
$param = is_array($param) ? $param : [$param];
array_map(function ($item) {
//
}, $param);
// 使用类型转化
array_map(function ($item) {
//
}, (array) $param);
当然这看起来没什么区别,只是节省了一行代码而已。但是你可以设想一下,当你使用复杂的循环结构或者嵌套数组处理大量数据时。这样做将会有意义,它能使代码保持简洁。
##类型检查
类型检查也是一项让代码更简洁的技巧。一个小的类型检查可以节省几行代码,有些时候,还可以为你的参数提供更多的灵活性。
public function scopeOfTeam($query, $team) {
$team = $team instanceof Team ? $team->id : $team;
return $query->where('team_id', $team);
}
在这个例子里,我们可以在一行里面检查参数类型,所以我们不需要处处都写 if-else
语句。这里的参数有多种可能,可以是一个 Team 实例,也可以是一个整数。
##重构长 If 语句
有时候,在执行动作之前我们需要做一些条件检查。但是,随着我们的应用的持续增长,if
语句会变得越来越长。所以,我们需要考虑重构。一个小例子:
// 与其这样
if ($a === 'val_1' || $a === 'val_2' || $a === 'val_3') {
// 执行动作
}
// 不如这样
if (in_array($a, ['val_1', 'val_2', 'val_3'])) {
// 执行方法
}
注意,第一个例子运行方式与第二个有一些不同。第一个例子中,只要有一个条件为真,则后面的条件就会被忽略,在一些情况下,它会更快。谢谢 Zois Pag 的建议。
这两个例子的结果是一样的,但是第二个更整洁。我们可以不再使用 ||
操作符,并且只引用了 $a
变量一次。
##去掉不必要的 if 语句
一个普遍的错误,我们会经常性的过度使用 if-else
语句。当然,有些时候它是不可省略的,但也有些情况,我们不需要用到它。
// 之前这样用
if ($a === 'b') {
return true;
} else {
return false;
}
// 现在可以这样
return $a === 'b';
但是逻辑颠倒了怎么办? 那么, 如果条件是 true
我们又想返回 false
该怎么办? 当然,在 if
语句中,我们仅需要相反的 true
和 false
,但是在重构的版本中,我们会有一个相对轻松的工作。只需要在你验真假的时候加上 ! 运算符。它将返回颠倒后的结果。
##总结
每天我们都能发现一些充满了过度复杂逻辑的方案和代码,长期来看,这对开发者和产品本身都不好。上文中,我们只是尝试搜集了一些例子,在这些例子里,你只需做出一点小的努力,就可以让你的代码变得更好更简洁。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 编码、摘要和加密(一)——字节编码
- 新媒体编码时代的技术:编码与传输
- MySQL数据库字符编码总结--数据传输编码
- PHP 开发者学 Golang 之 URL 编码 (Urlencode)、解编码 (Urldecode)
- ios平台实现视频H264硬编码及软编码(附完整demo)
- Python 中文编码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hadoop: The Definitive Guide
Tom White / O'Reilly Media, Inc. / 2009 / 44.99
Apache Hadoop is ideal for organizations with a growing need to store and process massive application datasets. Hadoop: The Definitive Guide is a comprehensive resource for using Hadoop to build relia......一起来看看 《Hadoop: The Definitive Guide》 这本书的介绍吧!