相关疑难解决方法(0)

Zend Studio报告警告:条件分配.这真糟糕吗?

我最近开始使用Zend Studio,它报告了以下类型的代码:

$q = query("select * from some_table where some_condition");
while ($f = fetch($q)) {
  // some inner workings
}
Run Code Online (Sandbox Code Playgroud)

要停止警告,代码需要像这样写:

$q = query("select * from some_table where some_condition");
$f = fetch($q);
while ($f) {
  // some inner workings
  $f = fetch($q);
}
Run Code Online (Sandbox Code Playgroud)

为什么这被标记为警告?这么糟糕吗?

我知道警告可能旨在阻止这样的错误:

$a = 1;
while ($a = 1) {
  // some inner workings
  $a++;
}
Run Code Online (Sandbox Code Playgroud)

永远不会终止,因为1被分配给$ a,而$ a又返回1到while语句,而不是针对$ a进行测试,并且当$ a不是1时,将false返回到while语句.

容易出错的错误可以验证警告,但是在第二个例子中忘记在while块的末尾添加额外的$ f = fetch($ q),这也会导致永远不会终止的循环.如果我更改我的代码以删除警告,然后忘记在while块的末尾添加$ f = fetch($ q),Zend将不会发出警告!

因此,通过删除有关常见错误的警告,我正在为自己设置一个不同的常见错误.

走出锅,进入火中.

warnings zend-framework variable-assignment while-loop conditional-statements

9
推荐指数
3
解决办法
9252
查看次数