# Standard PHP Library (SPL) Functions

## Introduction

SPL is a collection of interfaces and classes that are meant to solve standard problems.

Tip

A more detailed documentation of SPL can be found » here.

## Installation

This extension is available and compiled by default in PHP 5.

## Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Warning

SPL uses class constants since PHP 5.1. Prior releases use global constants in the form `RIT_LEAVES_ONLY`.

`RecursiveIteratorIterator::LEAVES_ONLY` (integer)
`RecursiveIteratorIterator::SELF_FIRST` (integer)
`RecursiveIteratorIterator::CHILD_FIRST` (integer)
`CachingIterator::CALL_TOSTRING` (integer)
`CachingIterator::CATCH_GET_CHILD` (integer)

## Table of Contents

- ArrayIterator::current — Return current array entry
- ArrayIterator::key — Return current array key
- ArrayIterator::next — Move to next entry
- ArrayIterator::rewind — Rewind array back to the start
- ArrayIterator::seek — Seek to position
- ArrayIterator::valid — Check whether array contains more entries
- ArrayObject::append — Appends the value
- ArrayObject::__construct — Construct a new array object
- ArrayObject::count — Return the number of elements in the Iterator
- ArrayObject::getIterator — Create a new iterator from an ArrayObject instance
- ArrayObject::offsetExists — Returns whether the requested $index exists
- ArrayObject::offsetGet — Returns the value at the specified $index
- ArrayObject::offsetSet — Sets the value at the specified $index to $newval
- ArrayObject::offsetUnset — Unsets the value at the specified $index
- CachingIterator::hasNext — Check whether the inner iterator has a valid next element
- CachingIterator::next — Move the iterator forward
- CachingIterator::rewind — Rewind the iterator
- CachingIterator::__toString — Return the string representation of the current element
- CachingIterator::valid — Check whether the current element is valid
- CachingRecursiveIterator::getChildren — Return the inner iterator's children as a CachingRecursiveIterator
- CachingRecursiveIterator::hasChildren — Check whether the current element of the inner iterator has children
- DirectoryIterator::__construct — Constructs a new dir iterator from a path
- DirectoryIterator::current — Return this (needed for Iterator interface)
- DirectoryIterator::getATime — Get last access time of file
- DirectoryIterator::getCTime — Get inode modification time of file
- DirectoryIterator::getFilename — Return filename of current dir entry
- DirectoryIterator::getGroup — Get file group
- DirectoryIterator::getInode — Get file inode
- DirectoryIterator::getMTime — Get last modification time of file
- DirectoryIterator::getOwner — Get file owner
- DirectoryIterator::getPath — Return directory path
- DirectoryIterator::getPathname — Return path and filename of current dir entry
- DirectoryIterator::getPerms — Get file permissions
- DirectoryIterator::getSize — Get file size
- DirectoryIterator::getType — Get file type
- DirectoryIterator::isDir — Returns true if file is directory
- DirectoryIterator::isDot — Returns true if current entry is '.' or '..'
- DirectoryIterator::isExecutable — Returns true if file is executable
- DirectoryIterator::isFile — Returns true if file is a regular file
- DirectoryIterator::isLink — Returns true if file is symbolic link
- DirectoryIterator::isReadable — Returns true if file can be read
- DirectoryIterator::isWritable — Returns true if file can be written
- DirectoryIterator::key — Return current dir entry
- DirectoryIterator::next — Move to next entry
- DirectoryIterator::rewind — Rewind dir back to the start
- DirectoryIterator::valid — Check whether dir contains more entries
- FilterIterator::current — Get the current element value
- FilterIterator::getInnerIterator — Get the inner iterator
- FilterIterator::key — Get the current key
- FilterIterator::next — Move the iterator forward
- FilterIterator::rewind — Rewind the iterator
- FilterIterator::valid — Check whether the current element is valid
- LimitIterator::getPosition — Return the current position
- LimitIterator::next — Move the iterator forward
- LimitIterator::rewind — Rewind the iterator to the specified starting offset
- LimitIterator::seek — Seek to the given position
- LimitIterator::valid — Check whether the current element is valid
- ParentIterator::getChildren — Return the inner iterator's children contained in a ParentIterator
- ParentIterator::hasChildren — Check whether the inner iterator's current element has children
- ParentIterator::next — Move the iterator forward
- ParentIterator::rewind — Rewind the iterator
- RecursiveDirectoryIterator::getChildren — Returns an iterator for the current entry if it is a directory
- RecursiveDirectoryIterator::hasChildren — Returns whether current entry is a directory and not '.' or '..'
- RecursiveDirectoryIterator::key — Return path and filename of current dir entry
- RecursiveDirectoryIterator::next — Move to next entry
- RecursiveDirectoryIterator::rewind — Rewind dir back to the start
- RecursiveIteratorIterator::current — Access the current element value
- RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration
- RecursiveIteratorIterator::getSubIterator — The current active sub iterator
- RecursiveIteratorIterator::key — Access the current key
- RecursiveIteratorIterator::next — Move forward to the next element
- RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator
- RecursiveIteratorIterator::valid — Check whether the current position is valid
- SimpleXMLIterator::current — Return current SimpleXML entry
- SimpleXMLIterator::getChildren — Returns an iterator for the current entry if it is a SimpleXML object
- SimpleXMLIterator::hasChildren — Returns whether current entry is a SimpleXML object
- SimpleXMLIterator::key — Return current SimpleXML key
- SimpleXMLIterator::next — Move to next entry
- SimpleXMLIterator::rewind — Rewind SimpleXML back to the start
- SimpleXMLIterator::valid — Check whether SimpleXML contains more entries
- class_implements — Return the interfaces which are implemented by the given class
- class_parents — Return the parent classes of the given class
- iterator_count — Count the elements in an iterator
- iterator_to_array — Copy the iterator into an array
- spl_autoload_call — Try all registered __autoload() function to load the requested class
- spl_autoload_extensions — Register and return default file extensions for spl_autoload
- spl_autoload_functions — Return all registered __autoload() functions
- spl_autoload_register — Register given function as __autoload() implementation
- spl_autoload_unregister — Unregister given function as __autoload() implementation
- spl_autoload — Default implementation for __autoload()
- spl_classes — Return available SPL classes
- spl_object_hash — Return hash id for given object