美文网首页PHP Chaos
好代码习惯,减少代码的怪味 - Part 2

好代码习惯,减少代码的怪味 - Part 2

作者: xiaojianxu | 来源:发表于2017-05-31 15:20 被阅读9次

    11、if 条件语句块中,放置的代码过长。(其实,有更长的代码,导致必须要滚动侧边滚动条,才可以继续阅读。)

    实例代码:
    该代码段中的 if 只是,为了判断是否为 post 传输方法。建议,直接修改为非 post 提交方式,那就返回提示,并退出代码执行。

     public function is_task_json()
        {
            if ($this->input->method() == 'post') {
                $post = $this->input->post();
                $start = date('Ymd', strtotime($post['taskstart_time']));
                $end = date('Ymd', strtotime($post['taskend_time']));
                if ($start == $end) {
                    echo 3;
                    exit;
                }
                $group = '';
                $first = $num = 0;
                $table = 'product a';
                $fields = 'b.id,a.ASIN,a.type,b.tasktime';
                $order = 'b.tasktime ASC';
                $join = array(array('product_num b', 'b.productid = a.id', 'left'));
                $where = array('a.ASIN' => $post['ASIN'], 'a.type' => $post['type'], 'a.platform' => $post['platform'], 'a.company_id' => $this->company_id, 'a.status' => 2);
                $sql1 = 'b.tasktime between ' . strtotime($post['taskstart_time']) . ' and ' . strtotime($post['taskend_time']);
                $this->db->where($sql1);
                $list = $this->Data_model->getJoinData($table, $join, $where, $fields, $order, $group, $first, $num);
                echo $list ? 1 : 2;
            }
        }
    

    12、返回响应的是 1, 2, 3 ...,这样没有注释和语义的数字。

     if (!$res1) {
        echo 1;
        exit;
    } else {
        echo 2;
        exit;
    }
    

    13、可以使用三元运算符来,代替简单的 if...else 。

    //优化前:
    if ($post['type'] == 1) {
        $fast_comment1 = 2;
    } else {
        $fast_comment1 = $post['fast_comment'];
    }
    
    if ($post['bind_type'] == 1) {
        $fast_comment2 = 2;
    } else {
        $fast_comment2 = $post['bind_fast_comment'];
    }
    
    // 优化后:
     $fast_comment1 = ($post['type'] == 1) ? 2 : $post['fast_comment'];
     $fast_comment2 = ($post['bind_type'] == 1) ? 2 : $post['bind_fast_comment'];
    

    14、冗余的条件判断,要善于使用内置函数 empty(),is_null(),is_int(),is_string() 等等。

    // 优化前:
    $value['create_time'] = $value['create_time'] != '' ? date('Y-m-d H:i:s',$value['create_time']) : '' ;
    
    // 优化后:
    $value['create_time'] = empty($value['create_time']) ? '' : date('Y-m-d H:i:s',$value['create_time']);
    

    相关文章

      网友评论

        本文标题:好代码习惯,减少代码的怪味 - Part 2

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