【问题标题】:if elseif statement not working php [closed]如果 elseif 语句不起作用 php [关闭]
【发布时间】:2013-08-31 18:57:29
【问题描述】:

所以我有这两个存储过程。第一个工作正常,但第二个不会。它仍然执行第一个。我尝试注释掉除第二个存储过程之外的其他内容,它工作正常。我在这里做错了什么?

if($view='group'){
$sql = "CALL sp_edit_biochem_group('$item_group_ID','$item_group_code','$item_group_desc','$item_group_qty','$uom','$location','$inv_by','$as_of_date')";
}
elseif ($view='breakdown'){
$sql = "CALL sp_edit_biochem_breakdown('$status','$as_of_date','$serial_no','$item_breakdown_ID')";
}

【问题讨论】:

  • 经典:使用== 而不是== 分配一个值,== 比较值。还请查看“Yoda conditions”以避免此类问题。
  • 你应该使用==而不是=吗?
  • 您使用的是赋值运算符=,而不是比较运算符==

标签: php sql if-statement


【解决方案1】:

这正是推荐使用它的原因:

if ('group' == $view) {

如果您犯了类似的错误(使用= 而不是==),您的代码将如下所示:

if ('group' = $view) {

您会收到一个致命错误,并立即通知并修复该问题。

【讨论】:

  • 我从来没有见过这个推荐,虽然它是有道理的(一侧是不变的)。你能引用一个来源吗?
  • 一秒钟,我认为它在 PSR-2 或其他东西中:D
  • @AdrianWragg 这叫做尤达条件。这是Wikipedia上的一小段文字
  • 是的,它不在 PSR 中,对此感到抱歉。我第一次看到它是一个 wordpress 推荐标准 (make.wordpress.org/core/handbook/coding-standards/php/…)
【解决方案2】:

您使用的是赋值运算符 (=) 而不是相等运算符 (==)。试试:

if($view=='group'){
    $sql = "CALL sp_edit_biochem_group('$item_group_ID','$item_group_code','$item_group_desc','$item_group_qty','$uom','$location','$inv_by','$as_of_date')";
}
elseif ($view=='breakdown'){
    $sql = "CALL sp_edit_biochem_breakdown('$status','$as_of_date','$serial_no','$item_breakdown_ID')";
}

【讨论】:

    【解决方案3】:

    您使用的是赋值运算符=,而不是比较运算符==

    【讨论】:

    • 我很不安,因为我输入了几乎与评论完全相同的字符串,而您输入它作为答案的时间却完全相同。你喜欢我脑海里的景色吗? :D
    • @andrewsi 里面肯定有可怕的东西... =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多