若转载教程,请注明出自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生态发展交流为主,若出现争吵,攻击其他人等行为,立即剔除。
该群以Swoole生态发展交流为主,若出现争吵,攻击其他人等行为,立即剔除。