繁体   English   中英

PHP:是否有替代使用多个 if 语句的方法?

[英]PHP: Is there an alternative to using multiple if-statements?

我正在编写一些需要检查用户登录详细信息是否正确的代码,因此我需要很多相互之间的 if 语句。 如果 if 语句中的任何条件不成立,它们都应该返回相同的值。 有没有一种简单的方法可以做到这一点,而不是多次编写相同的内容? 我在下面做了一个例子来可视化我的问题。 正如你在这里看到的,我多次写“ else { return false; }”,这就是我想知道你是否能够更有效地做的事情。 也许所以我只需要写一次“否则返回错误”。

//some code
if (/*some condition*/) {
  //some code
  if (/*some new condition*/) {
    //some code
    if (/*some new condition*/) {
        //some code
      } else {
        return false;
      }
   } else {
     return false;
   }
} else {
  return false;
}

我很难找到解释我的问题的好方法,所以如果你有更优雅的解释方式,请不要犹豫编辑我的帖子。 我也不太确定标题是否尽可能好,所以如果您对替代品有任何想法,请说出来:)

假设您有类似的东西(我添加了否):

if ( condition1 ) {
  //some code 1
  if ( condition 2 ) {
    //some code 2
    if ( condition 3 ) {
        //some code 3
      } else {
        return false;
      }
   } else {
     return false;
   }
} else {
  return false;
}

由于每次条件为假时,您退出 function 返回false ,您可以使用否定直接测试条件是否为假(如果否定条件为真):

if ( !condition1 ) {
    return false;
}
//some code 1
if ( !condition2 ) {
    return false;
}
//some code 2
if ( !condition3 ) {
    return false;
}
//some code 3

这不会减少 if 语句的数量,但可以避免许多嵌套级别。

if通过将它们与&&组合,将它们全部放在一个中。

if (condition1 && condition2 && condition3) {
    // some code
} else {
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM