Zend Studio IDE中“条件分配”警告背后的理由是什么?

时间:2010-11-22 21:26:50

标签: php warnings zend-studio

假设:

if ($variable = get_variable('variable')) {
    // ...
}

* $ variable = get_variable('variable')*在Zend Studio中抛出'条件分配'警告。我理解这个警告意味着什么,但有谁知道它背后的理由是什么?它只是编码惯例,可读性等问题吗?

5 个答案:

答案 0 :(得分:5)

这是IDE /编译器在大多数语言中发出的非常常见的警告,允许使用此构造:因为=(赋值)和==(比较)非常相似,并且比较更常见一个if声明,警告就是在那里告诉你,如果你真的打算进行比较,你可能会错误地进行了作业。

答案 1 :(得分:3)

这样做是因为:

if ($variable = get_variable('variable')) {
    // ...
}

非常接近:

if ($variable == get_variable('variable')) {
    // ...
}

前者并不是一个很好的做法。 Zend Studio假设您更有可能意味着后一种情况,因此它会对此发出警告。并不是说这不是一个有用的工具。在while循环中通常更容易接受,因为逐行读取文件(虽然仍然有一行要读取)。问题是很难快速挑选出来。

答案 2 :(得分:0)

我认为这主要是因为人们通常会忘记双等。这应该摆脱警告:

if ($variable = get_variable('variable') != false) {
    // ...
}

答案 3 :(得分:0)

因为通常它只是一个错字,如果你忘了一个“=”

if ($a = $b) { /* $a and $b equal? */ }

因此IDE建议您查看它。

答案 4 :(得分:0)

编写赋值运算符=而非等号检查==是非常常见的错误。

在所有情况下,我知道你可以通过将括号括在这样的括号中去除那个警告。

if (($var = 1))
{
    /* ... */
}