【发布时间】:2010-09-23 22:53:49
【问题描述】:
我正在使用用于 PHP 6.5 的 NetBeans。
在我的代码中,我经常使用以下类型的命令:
if (($row = $db->get_row($sql))) {
return $row->folder;
} else {
return FALSE;
}
Netbeans 告诉我,我不应该在 IF 语句中使用赋值。
为什么?
【问题讨论】:
-
我原以为双括号(赋值周围的括号)应该表明赋值是有意的。我认为在这种情况下,一些编译器会抑制警告。
-
关闭该警告,替换为测试驱动开发。 ;)
=和==之间的行为差异如此之大,您的测试应该会失败。 (不像==与===- 我希望我的 IDE 对此发出警告,最好) -
@LeeKowalkowski 这与混淆 = 和 == 无关。这与条件中的分配有关。例如,是否应该将 '$row = $db->get_row($sql)' 放在前一行。
-
其他人已经回答说,条件表达式中对 = 的警告与混淆 = 和 == 有关。我只是说,通过充分的测试,你甚至不需要警告,因为这样的错误非常严重,测试会发现它们。因此,如果您发现使用 2 条语句而不是 1 条语句很乏味,请忽略该警告,并继续按照您的示例编写代码。
标签: php coding-style