【问题标题】:How to fix Assignment in condition error in php?如何修复 php 中条件错误的赋值?
【发布时间】:2012-01-05 00:08:03
【问题描述】:

我有这个代码:

while (list ($key, $val) = each ($ethnicity)) {
    if ($val == '')
        $ethnicity = '';
    break;
}

我收到一条错误消息:Assignment in condition, Change to ==

但我无法将其更改为 ==,否则它不起作用。

有人愿意向我解释为什么会这样吗?

编辑。

错误是针对第一行的。

我在这里也遇到同样的错误:

             while (($row = mysql_fetch_row ($result)))
            {   
             $sms_providerchecked0= $row[3];
             $to_return_email12 = $cell."@$sms0";
            }

在第一行

【问题讨论】:

  • 你能解释一下你在用这条线做什么。 while (list ($key, $val) = each ($ethnicity))
  • 在哪一行抛出该错误? (第一行?)如果您只是要在第一次通过循环时中断,为什么还要通过循环?
  • 所以基本上如果 $ethnicity 数组中的任何值是空的,然后核对整个数组并将其更改为空字符串?伙计,如果商店在货架上发现一个空盒子时就这样做,那么剩下的商店就不多了。

标签: php while-loop syntax-error assignment-operator


【解决方案1】:
$row = mysql_fetch_row($result);
while ($row) {   
    $sms_providerchecked0= $row[3];
    $to_return_email12 = $cell."@$sms0";
    $row = mysql_fetch_row($result);
}

【讨论】:

    【解决方案2】:

    您是否尝试在条件周围添加额外的集合或括号?

    IE:

    while ((list ($key, $val) = each ($ethnicity))) 
    {
        if ($val == '')
        $ethnicity = '';
        break;
    }
    

    另外,您使用的是什么 IDE,因为这很可能只是您的 IDE 过分热衷于防止无意条件分配的问题。

    编辑:

    当您使用 zend 并且您的代码完全有效时,看起来如果您想停止看到警告以便您可以按照您想要的方式编写代码(这是一个错误的警告),您可以禁用该警告 窗口 |首选项,PHP |语义分析。

    【讨论】:

    • 额外的括号没有帮助。我正在使用 zend 工作室
    • 我在很多地方读到这是 zend 的一个大问题。我已经编辑了上面的答案,请检查。
    • 也谢谢,看来@volkerk 给予的罪恶税运行正常
    • 那很好,只要记住你最初拥有的东西是有效的,这是很多人这样做的正常方式,Zend 对此有一个小问题。您的代码仍然可以正常工作,您可以忽略警告或禁用它,因为 PHP 本身可以很好地分配条件。
    【解决方案3】:
    while ( false!=(list($key, $val)=each($ethnicity)) ) {
    

    我没有zend studio,所以这可能会也可能不会成功...

    【讨论】:

      猜你喜欢
      • 2017-12-18
      • 1970-01-01
      • 2019-08-29
      • 2013-11-12
      • 2018-05-21
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多