讨论数量:
我记得10年前有个项目经理讲师给我们培训,就提过圈复杂度的概念,计算方法很简单,建议楼主可以搜索学习。
我印象里记得他说当时给一个芬兰公司做 Java
语言开发的项目,当时的项目经理就要求函数内的代码不得超过 25 行。他跟我们讲,PHP
的代码应该更容易达到这个要求。
if 嵌套的层次尽可能不要超过三层, 否则代码的可读性性很差, 不利为维护
if中逻辑复杂的话 可以考虑 <多态> 重构下代码
if中逻辑简单的话 说明你应该优化逻辑代码, 比如switch替换if, if中是否有重复的判断,php语法规则(三联运算符等)
很正常的,写多了自己就知道怎么优化了,楼上说的switch php8的match也是一种方式, 有的也可以用return、异常的方式终止向下执行减少if层级, 楼上的switch的写法也还好 我一般会定义常量类用于定义各种类型啥的,比如
看看能不能进行归类使用switch
php8以上可以改用match
我也是最近才改过来的,可以省很多东西
switch
if ( in_array($order->status,[4,5,9,10])){
switch($order->status){
case 4:
$msg = '当前订单已完成,订单不可取消!';
break;
case 5:
$msg = '取消订单已完成,不可重复取消!';
break;
case 9:
$msg = '商品返回途中,暂时不可取消!';
break;
case 10:
$msg = '订单商品已返还,订单不可取消!';
break;
default:
$msg = '订单状态异常,请刷新后再试!';
}
return response()->json(['status'=>'error', 'code'=>1,'msg'=>$msg]);
}
match
if (in_array($order->status,[4,5,9,10])){
$msg = match ($order->status) {
4 => '当前订单已完成,订单不可取消!',
5 => '取消订单已完成,不可重复取消!',
9 => '商品返回途中,暂时不可取消!',
10 => '订单商品已返还,订单不可取消!',
default => '订单状态异常,请刷新后再试!',
};
return response()->json(['status'=>'error', 'code'=>1,'msg'=>$msg]);
}
推荐文章: