嵌入式If / Elses与序列化和(&&)语句?

时间:2011-11-16 00:33:37

标签: php javascript c++

这只是一个偏好问题....下面的代码我正在考虑转向序列化&& statments ...这是一个有效的if / else嵌入if / else的。

Is this a preference or is there a "best practice"?

  function invoke()
    {
    $obj=new validate($this->_protected_arr);
    if($obj->empty_user())
      {
      if($obj->email())
        {
        if($obj->pass())
          {
          if(self::validate())
            {
            self::activate_session();
            $control=new controller_control();
            $control->send('pass');
            }
          else
            {
            new view_message('validate');
            }
          }
        else
          {
          new view_message('pass');
          }
        }
      else
        {
        new view_message('email');
        }
      }
    else
      {
      new view_message('empty');
      }         
    }

1 个答案:

答案 0 :(得分:4)

扭转你的方法..

if (!$obj->empty_user) {
 return new view_message('empty');
}

if (!$obj->foo) {
 return new view_message('foo');
}

//Garden of Eden

只有在安全的情况下,您的代码路径才会继续 - 这样可以避免丑陋的嵌套连接,并增加重构的灵活性。不需要&& &安培;&安培; &安培;&安培;一切。