SPL is a collection of interfaces and classes used to solve standard problems.
This extension can only be used after PHP 5.0, and will no longer be closed from PHP 5.3.0. It will always be effective and become a part of the PHP kernel component.
Data Structures
SPL provides a set of standard data structures.
Double Linked List
Double Linked List (DLL) is a list of nodes linked in both directions to each others. Iterator's operations, access to both ends, addition or removal of nodes have a cost of O(1) when the underlying structure is a DLL. It hence provides a decent implementation for stacks and queues.
SplDoublyLinkedList
SplStack
SplQueue
Heaps are tree-like structures that follow the heap-property: each node is greater than or equal to its Don 't confuse them with PHP arrays: PHP arrays are in fact implemented as ordered hashtables.
SplFixedArray
map
A map is a datastructure holding key-value pairs. PHP arrays can be seen as maps from integers/strings to values . SPL provides a map from objects to data. This map can also be used as an object set.
ArrayIterator
RecursiveArrayIterator
EmptyIterator
IteratorIterator
CallbackFilterIterator
RecursiveFilterIterator
RegexIterator
RecursiveCallbackFilterIterator
ParentIterator
RecursiveRegexIterator
RecursiveCachingIterator
AppendIterator
CachingIterator
FilterIterator
InfiniteIterator
LimitIterator
NoRewindIterator
MultipleIterator
RecursiveIteratorIterator
RecursiveTreeIterator
DirectoryIterator (extends SplFileInfo)
GlobIterator
RecursiveDirectoryIterator
FilesystemIterator
Interfaces
SPL provides a series of interfaces.
Countable
OuterIterator
RecursiveIterator
SeekableIterator
SplObserver
SplSubject
Exceptions
SPL provides a series of standard exceptions.
LogicException (extends Exception)
BadMethodCallException
BadFunctionCallException
DomainException
InvalidArgumentException
LengthException
OutOfRangeException
Runtime Exception (extends Exception)
OutOfBoundsException
OverflowException
RangeException
UnderflowException
UnexpectedValueException
SPL Function
class_implements — Returns all interfaces implemented by the specified class.
class_parents — Returns the parent class of the specified class.
class_uses — Return the traits used by the given class
iterator_apply — Call a user-defined function for each element in the iterator
iterator_count — Count the number of elements in the iterator
iterator_to_array — Change the items in the iterator Elements are copied to the array
spl_autoload_call — Try to call all registered __autoload() functions to load the requested class
spl_autoload_extensions — Register and return the default file extension used by the spl_autoload function.
spl_autoload_functions — Returns all registered __autoload() functions.
spl_autoload_register — Register the __autoload() function
spl_autoload_unregister — Unregister the registered __autoload() function
spl_autoload — The default implementation of the __autoload() function
spl_classes — Return all available SPL classes
spl_ object_hash — returns the specified Object hash id
File processing
SPL provides some file-related classes.
SplFileInfo
SplFileObject
SplTempFileObject
Other classes and interfaces
ArrayObject
SplObserver
SplSubject