[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: OutOfBoundsException
bengun
Доброго времени суток, коллеги. Хотел бы поделиться с вами своей проблемой, вдруг кто-нибудь сталкивался. Есть код следующего вида:

if($elementsCollection && count($elementsCollection))
{
foreach($elementsCollection as $element)
{
//some code;
}
}

Где $elementsCollection, как нетрудно догадаться, коллекция некоторых элементов, расширяющая ArrayObject, Countable и IteratorAggregate. Из строки с foreach время от времени прилетает OutOfBoundsException, которое возникает в классе ArrayIterator с текстом ошибки ArrayIterator->seek(0), seek position 0 is out of range. Но, как видно их условия в if, пустой массив тут передаться не может. Может это баг, или я чего-то не понимаю? Буду рад любой помощи.



Спустя 19 минут, 37 секунд (3.09.2011 - 14:09) moskitos80 написал(а):
Можно предположить, что если код в цикле ( там где у тебя //some code; )
Изменяет как то коллекцию $elementsCollection то такая ошибка вполне вероятна, ведь PHP нынче работает с объектами по ссылке...

Спустя 15 минут, 33 секунды (3.09.2011 - 14:24) bengun написал(а):
Цитата (moskitos80 @ 3.09.2011 - 11:09)
Можно предположить, что если код в цикле ( там где у тебя //some code; )
Изменяет как то коллекцию $elementsCollection то такая ошибка вполне вероятна, ведь PHP нынче работает с объектами по ссылке...

В цикле идет построение странички (код из шаблона), так что изменения там исключены. Но проверил на всякий случай еще раз:)

Спустя 44 минуты, 28 секунд (3.09.2011 - 15:09) Invis1ble написал(а):
bengun
что если вместо count() заюзать !empty() ?

Спустя 1 день, 17 часов, 39 минут (5.09.2011 - 08:48) linker написал(а):
Массив у тебя какой, ассоциативный?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.