十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.SPL 是什么?
SPL:standard php library php标准库,此 从php5.0起开始内置的组件和接口,在5.3以后逐渐成熟。因为内置在php5开发环境中,无需任何配置。
根据官方定义,“a collection of interfaces and classes that are meant to solve standard problems.”
然而在目前的使用者,spl更多地被看做是一种使object模仿的array行为的interfaces和classes。
SPL对PHP引擎进行了扩展,例如ArrayAccess、Countable和SeekableIterator等接口,它们用于以数组形式操作对象。同时还可以使用RecursiveIterator,ArrayObjects等其他迭代器进行数组的迭代操作。
他还内置了几个对象,例如Exceptions,SplObserver,spltorage以及splautoloadregister,splclasses,iteratorapply等的帮助函数,用于重载对应的功能。
2.Iterator
spl的核心概念是Iterator,这指一种设计模式(Design Pattern),"provide an object which traverses some aggregate structure,abstracting away assumptions about the implementation of that structure."
通俗的说,Iterator能够使许多不同的数据结构,都能有统一的操作界面,比如一个数据库的结果集、同一目录的文件集或者一个文本中每一行构成的集合。
SPL规定,所有部署了Iterator界面的class,都可以用在foreach loop中。Iterator界面包含以下必须部署的五个方法:
current()
This method returns the current index's value. You are solely
responsible for tracking what the current index is as the
interface does not do this for you.
key()
This method returns the value of the current index's key. For
foreach loops this is extremely important so that the key
value can be populated.
next()
This method moves the internal index forward one entry.
rewind()
This method should reset the internal index to the first element.
valid()
This method should return true or false if there is a current
element. It is called after rewind() or next().
ArrayAccess界面
部署ArrayAccess界面,可以使object像Array那样操作,但是必须包含四个必须部署的方法
ArrayObject类
此类将Array转换为Object
ArrayIterator类
这个类实际上是对ArrayObject类的补充,为后者提供遍历功能。也支持offset类方法和count()方法
RecursiveArrayIterator类和RecursiveIteratorIterator类
ArrayIterator类和ArrayObject类,只支持遍历一维数组,如果要遍历多维数组,必须先用RecursiveIteratorIterator生成一个Iterator,然后再对这个Iterator使用RecursiveIteratorIterator
FilterIterator
FilterIterator类可以对元素进行过滤,只要在accept()方法中设置过滤条件就可以了。
SimpleXMLIterator类
这个类用来遍历xml文件
CachingIterator类
这个类有一个hasNext()方法,用来判断是否还有下一个元素
LimitIterator类
这个类用来限定返回结果集的数量和位置,必须提供offset和limit两个参数,与SQL命令中的limit语句类似
SplFileObject类
这个类用来对文本文件进行遍历
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。