假设:
if ($variable = get_variable('variable')) {
// ...
}
* $ variable = get_variable('variable')*在Zend Studio中抛出'条件分配'警告。我理解这个警告意味着什么,但有谁知道它背后的理由是什么?它只是编码惯例,可读性等问题吗?
答案 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))
{
/* ... */
}