Я недавно начал использовать Zend Studio, который сообщил, как предупреждение следующего типа кода: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++;
}
, который никогда не прекращается, потому что 1 в настоящее время присваивается $ а, в свою очередь, возвращает 1 к утверждению в то время, вместо того, чтобы проверяется против $ a и возвращает false в оператор while, когда $ a не является 1.
Простая ошибка, которая может подтвердить предупреждение, предоставленное, но при этом забывает добавить дополнительный $ f = fetch ($ q) в конце блока while во втором примере, который также приведет к циклу, который никогда не завершится. Если я изменил свой код, чтобы удалить предупреждение, а затем забудьте добавить $ f = fetch ($ q) в конце блока, а Zend не будет предупреждать об этом!
Таким образом, удалив предупреждение об общей ошибке, я настроюсь на другую распространенную ошибку.
Из поддона, в огонь.
+1 простой, сладкий. Делает намерение намерения выражения более ясным и подавляет предупреждение от студии – Fatmuemoo
идеальное решение, работает для меня, спасибо –