我有一个投票系统,允许用户为项目投票。现在,我首先检查用户是否登录,然后检查他们是否已经投票。我想知道是否有更好的方法来做到这一点,因为有人告诉我嵌套的 if 语句是要避免的。
我的代码:
if ($loggedIn) {
if($row['voted']){
You Already voted
}else{
<a href="#">Agree</a>
}
}else{
Please Register
}
我有一个投票系统,允许用户为项目投票。现在,我首先检查用户是否登录,然后检查他们是否已经投票。我想知道是否有更好的方法来做到这一点,因为有人告诉我嵌套的 if 语句是要避免的。
我的代码:
if ($loggedIn) {
if($row['voted']){
You Already voted
}else{
<a href="#">Agree</a>
}
}else{
Please Register
}
嵌套if( ... ){ ... }else{ ... }
语句很好,只要它们合乎逻辑且易于阅读/维护。另一种选择是审查你的论点的逻辑,看看它们是否可以用更简单的方式表达。
例如,您提供的代码可以表示为:
if( !$loggedIn ){
echo 'Please Register';
}elseif( $row['voted'] ){
echo 'You Already voted';
}else{
echo '<a href="#">Agree</a>';
}
这不是那么简单。您的示例很简单,但其他情况并非如此。在您的示例中,很容易遵循嵌套 if 语句可以使用的情况。在更复杂的代码中,深度嵌套的语句使代码难以维护。与编程的许多事情一样,它会因情况而异,您需要根据具体情况做出决定。
一般来说,没关系。您想避免过于复杂的嵌套 if 语句
在这种情况下它很好,事实上在大多数情况下它是。只有当您有很多嵌套时才会出现问题,因此它可能变得难以阅读并且您可能会忘记某些东西,但这是可读性,使用嵌套 if 语句的逻辑没有任何问题。