====== Итераторы ====== В PHP5 интерфейсы Iterator и Traversable являются уже встроенными и входят в [[http://www.php.net/~helly/php/ext/spl/| библиотеку SPL (StandardPHPLibrary)]]. ===== Диаграмма классов ===== ===== Классы-итераторы ===== ^Класс^Назначение^ |[[lmbIteratorBase]]|Абстрактный базовый класс для итераторов.| |[[lmbIteratorDecorator]]|Базовый декоратор на итератор.| |[[lmbEmptyIterator]]|Пустой итератор.| |[[lmbArrayDataset]]|Итератор для массива ассоциативных массивов. Метод current() возвращает объект класса [[lmbDataspace]], содержащий данные очередного элемента итератора.| |интерфейс [[lmbPager]]|Интерфейс, при помощи которого клиенты получают информацию о текущем состоянии пейджера (pager)| |интерфейс [[lmbPagedDataset]]|Интерфейс итератора, разбитого на страницы. Позволяет клиентам получить количество элементов на текущей странице (getRowCount()) и общее количество элементов без учета разбивки на страницы (getTotalRowCount()).| |[[lmbPagedArrayDataset]]|Наследник от lmbArrayDataset, поддерживающий разбиение на страницы.| |[[lmbEmptyPagedArrayDataset]]|Пустой итератор, поддерживающий интерфейс lmbPagedDataset.| |[[lmbPagedDatasetDecorator]]|Базовый декоратор на итератор, поддерживающий разбиение на страницы.| |[[lmbSetterDatasetDecorator]]|Декоратор итератора, который в каждую запись добавляет определенные данные.| |[[lmbFakePager]]|Заглушка для пейджера. Часто используется в тестах или в тех местах, где параметры ограничения известны заранее.|