Skip to content

Latest commit

 

History

History
 
 

Iterator

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Purpose

To make an object iterable and to make it appear like a collection of objects.

Examples

  • to process a file line by line by just running over all lines (which have an object representation) for a file (which of course is an object, too)

Note

Standard PHP Library (SPL) defines an interface Iterator which is best suited for this! Often you would want to implement the Countable interface too, to allow count($object) on your iterable object

UML Diagram

Alt Iterator UML Diagram

Code

You can also find these code on GitHub

Book.php

.. literalinclude:: Book.php
   :language: php
   :linenos:

BookList.php

.. literalinclude:: BookList.php
   :language: php
   :linenos:

BookListIterator.php

.. literalinclude:: BookListIterator.php
   :language: php
   :linenos:

BookListReverseIterator.php

.. literalinclude:: BookListReverseIterator.php
   :language: php
   :linenos:

Test

Tests/IteratorTest.php

.. literalinclude:: Tests/IteratorTest.php
   :language: php
   :linenos: