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 нынче работает с объектами по ссылке...
Изменяет как то коллекцию $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() ?
что если вместо count() заюзать !empty() ?
Спустя 1 день, 17 часов, 39 минут (5.09.2011 - 08:48) linker написал(а):
Массив у тебя какой, ассоциативный?