1

ユーザーがアイテムに投票できる投票システムがあります。現在、ユーザーがログインしているかどうかを最初に確認し、次にユーザーがすでに投票しているかどうかを確認することで、これを行っています。ネストされたifステートメントは避けるべきものであると言われているので、これを行うためのより良い方法があるかどうか疑問に思っています。

私のコード:

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

4 に答える 4

5

ネストされたif( ... ){ ... }else{ ... }ステートメントは、論理的で読みやすく、保守しやすいものであれば問題ありません。もう1つのオプションは、引数のロジックを確認して、より簡単な方法で表現できるかどうかを確認することです。

たとえば、提供されたコードは次のように表すことができます。

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 に答える