Вы пытались поставить дополнительный набор или скобки вокруг условия?
IE:
while ((list ($key, $val) = each ($ethnicity)))
{
if ($val == '')
$ethnicity = '';
break;
}
Кроме того, какую IDE вы используете, так как это, скорее всего, может быть проблемой из-за того, что ваша IDE слишком усердна в предотвращении непреднамеренных назначений в условии.
РЕДАКТИРОВАТЬ:
Поскольку вы используете Zend, и ваш код совершенно корректен, похоже, если вы хотите прекратить видеть предупреждение, чтобы вы могли написать свой код так, как вы хотите (это ошибочное предупреждение), вы можете отключить это предупреждение в
Окно | Настройки, PHP | Семантический анализ.