使 PHP 代码更加简洁的几个小技巧

Posted IT技院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使 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-else 语句


一个普遍的错误,我们会经常性的过度使用 if-else 语句。当然,有些时候它是不可省略的,但也有些情况,我们不需要用到它。


// 之前这样用

if ($a === 'b') {

    return true;

} else {

    return false;

}


// 现在可以这样

return $a === 'b';


但是逻辑颠倒了怎么办? 那么, 如果条件是 true 我们又想返回 false 该怎么办? 当然,在 if 语句中,我们仅需要相反的 true 和 false ,但是在重构的版本中,我们会有一个相对轻松的工作。只需要在你验真假的时候加上 ! 运算符。它将返回颠倒后的结果。


总结


长期看来,过度复杂的代码和方案对开发者和产品本身都不好。就像上面收集到的这些例子,你只需做出一点小的努力,就可以让你的代码变得更好更简洁。


译者:Laravel China—Summer


微信名:IT技院

微信ID:dodiIT

❶ 学IT到牵引力教育


❷ 有趣资讯、实用干货

❸ 长按右侧二维码关注

以上是关于使 PHP 代码更加简洁的几个小技巧的主要内容,如果未能解决你的问题,请参考以下文章

轻量化ViewController的几个小技巧

☆ 10个小技巧,让你的 Python 代码更加优雅~ ☆

构建镜像的几个小技巧

NuGet的几个小技巧

提升代码可读性,减少if-else的几个小技巧

css的几个小技巧