美文网首页
switch 多条件触发

switch 多条件触发

作者: dongdog | 来源:发表于2020-08-26 17:45 被阅读0次

写法一

多个case: 一个break; 多条件进入一个 下层
优点:好写注释 最优解

        switch ($data['notification_type']) {

            case 4://购买了新的订阅  需要支付发放
                $this->payOrder($update);
                break;
            case 3: //试用取消订单 发送更新
            case 10: //已经暂停
            case 12: //取消订阅
                $this->updateOrder($update, $data['notification_type']);
                break;
            default: //如果查询的结束时间 大于 本地mysql的结束时间 则更新时间
                if ($this->order_info['end_time'] < $query_info['expiryTimeMillis']) {
                    $this->updateOrder($update, $data['notification_type']);
                }

        }

switch的case用表达式不太友好, 这样所有case中的表达式它都会获取结果后再进行判断的

写法二

|| 短路 方式

type = 1 和 2 都可以 echo '1和2触发';
缺点 :不好写注释

    function test(Request $request){
        switch ($request->get('type')){
            case 1 || 2:
                echo '1和2触发';
                break;
            case 3 || 4:
                echo  '3盒4触发';
                break;
            default:
                echo '默认';
        }
    }

写法三

判断表达式 返回true 和 false ; in_array 等等

    function test(Request $request){
        
        $array1 = [1,2];
        $array2 = [3,4];
        
        
        switch ($request->get('type')){
            case in_array($request->get('type') , $array1):
                echo '1和2触发';
                break;
            case in_array($request->get('type'),$array2):
                echo  '3盒4触发';
                break;
            default:
                echo '默认';
        }
    }

相关文章

网友评论

      本文标题:switch 多条件触发

      本文链接:https://www.haomeiwen.com/subject/xsjfsktx.html