1

我有一个投票系统,允许用户为项目投票。现在,我首先检查用户是否登录,然后检查他们是否已经投票。我想知道是否有更好的方法来做到这一点,因为有人告诉我嵌套的 if 语句是要避免的。

我的代码:

if ($loggedIn) {
    if($row['voted']){
        You Already voted
    }else{
        <a href="#">Agree</a>
    }
}else{
    Please Register
}
4

4 回答 4

5

嵌套if( ... ){ ... }else{ ... }语句很好,只要它们合乎逻辑且易于阅读/维护。另一种选择是审查你的论点的逻辑,看看它们是否可以用更简单的方式表达。

例如,您提供的代码可以表示为:

if( !$loggedIn ){
  echo 'Please Register';
}elseif( $row['voted'] ){
  echo 'You Already voted';
}else{
  echo '<a href="#">Agree</a>';
}
于 2012-06-26T02:42:54.900 回答
2

这不是那么简单。您的示例很简单,但其他情况并非如此。在您的示例中,很容易遵循嵌套 if 语句可以使用的情况。在更复杂的代码中,深度嵌套的语句使代码难以维护。与编程的许多事情一样,它会因情况而异,您需要根据具体情况做出决定。

于 2012-06-26T00:41:28.863 回答
0

一般来说,没关系。您想避免过于复杂的嵌套 if 语句

于 2012-06-26T00:41:35.173 回答
0

在这种情况下它很好,事实上在大多数情况下它是。只有当您有很多嵌套时才会出现问题,因此它可能变得难以阅读并且您可能会忘记某些东西,但这是可读性,使用嵌套 if 语句的逻辑没有任何问题。

于 2012-06-26T00:44:43.237 回答