Наверняка многие, кто хоть чуть-чуть знает php, знает и замечательную функцию explode(). Она разбивает строку с указанным разделителем на элементы массива. И вот давайте рассмотрим типичную конструкцию: /* Конвертировать значения через запятую в массив */

$items = explode(',', $items);

/* Создание внутреннего HTML */

foreach ($items as $item) {

$item = trim($item);

$output .= "\n" . "<option value=\"{$item}\">{$item}</option>");

} В чем же здесь ошибка? Здесь логическая ошибка - не проверяется на отсутствие значения $items. Чем это чревато? Тем, что как минимум один цикл foreach обязательно выполнится. Почему? Потому что explode всегда вернет массив минимум с одним, хоть и пустым элементом. Но пустое будет значение у этого элемента, но сам элемент будет, а значит массив уже не пустой. Вот попробуйте выполнить вот эту конструкцию: print "<pre>";

$s = '';

var_dump($s);

$s = explode(",", $s);

var_dump($s);

print count($s);

foreach($s as $f){

var_dump($f);

} Результатом такой ошибки будет, к примеру, вот такой код: <select name="size"><option value="">Выбрать размер</option>

<option value=""></option>

</select> Как видите, здесь есть пустой элемент option.