0

if ステートメントと elseif ステートメントの両方が同時に機能しています。

  while($answerResult = mysql_fetch_assoc($answers))
  {
    if($reportResult != 0 && $this->CheckAnswer($questionId,$answerResult['id'],$reportResult))
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" checked/>'.$answerResult['name'].'aaa&nbsp;&nbsp';
    }
    elseif($sampleResult != 0 && $this->CheckAnswer($questionId,$answerResult['id'],$sampleResult))
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" checked/>'.$answerResult['name'].'hee&nbsp;&nbsp';
    }
    else
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" />'.$answerResult['name'].'&nbsp;&nbsp';
    }
  }

最初のステートメントが true の場合は、他の条件を調べないようにしようとしていますが、最初の条件が false の場合は、elseif 条件を確認してください。

ただし、条件が true の場合でも、elseif 条件は機能しています。

'echos' の最後に 'hee' と 'aaa' を付けて、どちらが印刷されているかを確認します。

結果:

最初に、if ステートメントが機能し、'aaa' で出力している場合は、elseif ステートメントを見て、これをチェックして 'hee' を出力します。

だから、何が欠けているのかわからず、解決策が見つかりません。何か提案はありますか?

4

1 に答える 1

3

1つのステートメントのif、、、elseifおよびelseは排他的であるため、これは発生しないはずです。

ステートメント全体がwhileループにあります...if最初の反復で実行されているのではなくelseif、2番目の反復で実行されているのではないでしょうか。

于 2012-12-07T10:17:08.693 に答える