样品,spl是SAMPLE的缩写,通常指的是样品,有时也有成SMPL。
SPL有以下接口(10大接口)
1.ArrayAccess其功能是使类可以像PHP中的数组一样操作。有点类似于.net平台的index操作。
2.Traversable是Zend引擎的内置接口,它是能让类用于foreach语句的接口,但是在PHP中并不能直接实现Traversable。只能间接地通过Iterator或IteratorAggregate接口实现。
3.IteratorAggregate(继承Traversable,是他的儿子)是除Iterator之外另一个从Traversable接口中继承而来的。其接口也很简单,只有一个函数。就是返回一个迭代器实例。
4.Iterator(也是继承Traversable,是他的儿子),SPL中大部分接口和类都是从这个接口继承而来的。
5.RecursiveIterator(继承Iterator,为Traversable的孙子),递归迭代器,通过hasChildren()和getChildren()两个函数实现递归遍历子元素。
6.Countable这接口就一个count()函数,返回结果集的数量。实现这个接口的类可以用count()函数查询其结果集。
7.Serializable该接口实现序列化和反序列化的接口。在没有SPL之前,可以通过__sleep()和__wakeup()实现相同的功能,若同时实现了Serializable接口和_sleep()和__wakeup(),则只有Serializable接口的函数启作用。
8.SplObserverObserver观察者模式的中的观察者。
9.SplSubjectObserver观察者模式的中的发布者。
10.OuterIterator它的实现者可以包含一个或多个迭代器成员,即可以通过。