今天遇到了一个很简单但是比较实用的小经验来给大家分享一下。
我们经常会遇到这样的场景:从前端接收数据,后台验证后存到数据库中。以一个具体的场景来说,对一个用户的信息进行更新。前端传来一系列的信息,包括用户id。首先,要判断id是否合法,其次判断数据库中是否存在该id的用户。数据不满足要求就抛出错误。判断成功后,再进行一系列的更新操作。一般我是这样写的:
if ($id){ // id不为空
$teacher = Teacher::where('id', $id)->first();
if ($teacher){ // 存在该id的教师
// 一些列更新操作代码
} else {
return $this->error->INVALID_PARAM;
}
} else {
return $this->error->INVALID_PARAM;
}
很明显,这样的话需要两层的if...else嵌套。如果还需要其他的逻辑判断,可能还要嵌套更多层,这样就显得代码不简洁。我们可以这样来写:
if (!$id){
return $this->error->INVALID_PARAM;
}
$teacher = Teacher::where('id', $id)->first();
if (!$teacher){
return $this->error->INVALID_PARAM;
}
// 一系列更新操作的代码
由于不满足情况的话是直接return的,if语句通不过不会再执行后面的语句。这样if语句和if后面的语句只有一处可以执行,就类似于if...else。满足这样的情况就可以使用上面的方法来优化代码的结构。
网友评论