美文网首页程序员
减少if...else的嵌套

减少if...else的嵌套

作者: 偏偏注定要落脚丶 | 来源:发表于2017-11-17 20:09 被阅读58次

   今天遇到了一个很简单但是比较实用的小经验来给大家分享一下。
   我们经常会遇到这样的场景:从前端接收数据,后台验证后存到数据库中。以一个具体的场景来说,对一个用户的信息进行更新。前端传来一系列的信息,包括用户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。满足这样的情况就可以使用上面的方法来优化代码的结构。

相关文章

网友评论

    本文标题:减少if...else的嵌套

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