Вопрос в том нормально ли заходить в ветку по else (по условию счетчик нулевой) и потом внутри увеличивать его... а иначе как обрабатывать ошибки ?
Нормально. А почему нет? Это в цикле по массиву не рекомендуется изменять сам массив, а в if-ах - ради Будды.
Ну и вообще часто приходится писать что то типа:
$x = ($x == 0) ? 15 : $x;
Что по сути одно и то же.