若转载教程,请注明出自SW-X框架官方文档

IF嵌套

实际开发中,if语句算是用得最多的流程分支语句了。

if语句的使用方式,也决定了逻辑的可读性。

做为一名及格的开发者,流程分支语句主要运用在流程控制上,要尽量减少流程的嵌套,让代码可读性更高。

if语句的优化可分成两点:嵌套优化if代替

A、IF嵌套优化

是指,在一段连环的if语句嵌套使用中,通过分解业务层级,尽量把if语句拆成同层级顺序执行,例如下面的案例:

$Db = new \x\Db();
$user = $Db->name('user')->find();

// 存在用户
if ($user) {
    // 开启
    if ($user['status'] == 1) {
        // 余额 还足够 
        if ($user['wallet'] > 100) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
} else {
    return false;
}

上面代码的可读性是不是很差,如果后期维护起来,还得继续往里面嵌套代码,所以按业务逻辑拆分,可以优化成以下代码:

$Db = new \x\Db();
$user = $Db->name('user')->find();

// 不存在用户
if (!$user) {
    return false;
}

// 如果被禁用
if ($user['status'] == 2) {
    return false;
}

// 如果余额快没钱了
if ($user['wallet'] <= 100) {
    return false;
}

return true;

B、IF代替

实际开发中,挺多开发者都喜欢使用if语句对某些参数进行判断,再赋予初始值,例如:

if (!isset($_POST['sex'])) {
    $_POST['sex'] = 1;
}

if (empty($_POST['sex'])) {
    $_POST['sex'] = 1;
}

对于这种判断赋值,我们都应该改成使用三元运算符飞船运算符进行优化,例如:


$_POST['sex'] = $_POST['sex'] ?? 1;
$_POST['sex'] = empty($_POST['sex']) ? $_POST['sex'] ? 1;

免费教程手写不易,希望能支持一下SW-X框架,(^.^)

GitHub有账号的朋友,也可以给我们一个小星星噢!

希望能够与大家共同培育出良好的Swoole生态,对Swoole有兴趣的朋友可以加我微信好友,进入SW-X框架官方交流群。
该群以Swoole生态发展交流为主,若出现争吵,攻击其他人等行为,立即剔除。