【问题标题】:if elseif statement in PHPPHP 中的 if elseif 语句
【发布时间】:2012-12-07 10:12:32
【问题描述】:

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';
    }
  }

如果我的第一个语句为真,则不要查看其他条件,但如果我的第一个条件为假,则检查 elseif 条件。

但是,即使 first if 条件为真,我的 elseif 条件仍然有效。

我将“hee”和“aaa”放在“echo”的末尾,看看哪个在打印。

结果:

首先,if 语句正在工作并使用 'aaa' 打印,然后查看 elseif 语句并检查并打印 'hee'。

所以,我不知道我缺少什么并且找不到任何解决方案,有什么建议吗?

【问题讨论】:

  • 您应该在 while 循环的顶部尝试输出。我敢打赌那里有多行。
  • 您确定在while 循环的同一迭代中打印了“aaa”和“hee”吗?
  • 据我了解,您在 while 循环的第二次或不同迭代中说过可以改变结果,如果是这样我应该改变所有结构
  • 只需在所有语句的末尾添加 $i @ 在 while 的末尾添加 i++;再检查一次还是有问题
  • 可以把我的结果截图放在这里吗?我没有在常见问题中看到

标签: php if-statement


【解决方案1】:

一个语句中的ifelseifelse 是排他性的,因此不应发生这种情况。

整个语句在一个while循环中...你确定不是if在第一次迭代中执行,elseif在第二次迭代中执行?

【讨论】:

  • 你可能是对的,所以我应该先检查 while 语句,谢谢。
  • mysql_fetch_assoc 总是从数据库查询结果中获取一行 - 我想您在那里发出的查询有更多结果行,否则while 循环将没有用处
  • 我的查询是“SELECT * FROM answer”,在我的答案表中我有:“id,name”:“1,yes”、“2,no”、“3,na”跨度>
  • 这听起来很简单,(1, yes) 的一个条件为真,(2, no) 的另一个条件为真(例如)。通过该查询,while 应该循环 3 次
  • 所以第二次迭代对于 elseif 条件可能为真,这可能会改变结果,尽管第一次迭代对于 if 条件是正确的。
猜你喜欢
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
相关资源
最近更新 更多