SPL provides a set of iterators to traverse over objects.
ArrayIterator
RecursiveArrayIterator
EmptyIterator
IteratorIterator
AppendIterator
CachingIterator
RecursiveCachingIterator
FilterIterator
CallbackFilterIterator
RecursiveCallbackFilterIterator
RecursiveFilterIterator
ParentIterator
RegexIterator
RecursiveRegexIterator
InfiniteIterator
LimitIterator
NoRewindIterator
MultipleIterator
RecursiveIteratorIterator
RecursiveTreeIterator
DirectoryIterator (extends SplFileInfo)
FilesystemIterator
GlobIterator
RecursiveDirectoryIterator