最近、次のタイプのコードを警告していると報告されている Zend Studio の使用を開始しました。
$q = query("select * from some_table where some_condition");
while ($f = fetch($q)) {
// some inner workings
}
警告を停止するには、コードを次のように記述する必要があります。
$q = query("select * from some_table where some_condition");
$f = fetch($q);
while ($f) {
// some inner workings
$f = fetch($q);
}
これが警告としてマークされているのはなぜですか? それはとても悪いですか?
警告が次のようなエラーを停止するように設計されている可能性があることを理解しています。
$a = 1;
while ($a = 1) {
// some inner workings
$a++;
}
$a に対してテストされ、$a が 1 でない場合に while ステートメントに false を返すのではなく、$a に 1 が代入され、while ステートメントに 1 が返されるため、決して終了しません。
警告を検証する可能性のある簡単なエラーは認められますが、2番目の例のwhileブロックの最後に余分な $f = fetch($q) を追加するのを忘れているため、決して終了しないループが発生します. コードを変更して警告を削除し、while ブロックの最後に $f = fetch($q) を追加するのを忘れた場合、Zend はそれについて警告しません!
したがって、一般的なエラーに関する警告を削除することで、別の一般的なエラーに備えることができます。
鍋から火の中へ。