讨论数量:
看看能不能进行归类使用 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]);
}
很正常的,写多了自己就知道怎么优化了,楼上说的 switch php8 的 match 也是一种方式,有的也可以用 return、异常的方式终止向下执行减少 if 层级,楼上的 switch 的写法也还好 我一般会定义常量类用于定义各种类型啥的,比如
if 嵌套的层次尽可能不要超过三层,否则代码的可读性性很差,不利为维护
if 中逻辑复杂的话 可以考虑 <多态> 重构下代码
if 中逻辑简单的话 说明你应该优化逻辑代码,比如 switch 替换 if, if 中是否有重复的判断,php 语法规则 (三联运算符等)
推荐文章: