php spl库的使用

  

1。SPL是什么?
SPL:标准php库php标准库,此从php5.0起开始内置的组件和接口,在5.3以后逐渐成熟。因为内置在php5开发环境中,无需任何配置。
根据官方定义,“接口和类的集合,旨在解决标准问题。”
然而在目前的使用者,SPL更多地被看做是一种使对象模仿数组的行为的接口和类。
SPL对php引擎进行了扩展,例如ArrayAccess,可数和SeekableIterator等接口,它们用于以数组形式操作对象,同时还可以使用RecursiveIterator, ArrayObjects等其他迭代器进行数组的迭代操作。
他还内置了几个对象,例如例外,SplObserver, spltorage以及splautoloadregister, splclasses, iteratorapply等的帮助函数,用于重载对应的功能。
2。迭代器
spl的核心概念是迭代器,这指一种设计模式(设计模式),“提供一个对象遍历一些聚合结构,假设的实现无关的抽象结构!”
通俗的说,迭代器能够使许多不同的数据结构,都能有统一的操作界面,比如一个数据库的结果集,同一目录的文件集或者一个文本中每一行构成的集合。
spl规定,所有部署了迭代器界面的类,都可以用在foreach循环中.Iterator界面包含以下必须部署的五个方法:

  
      <李>   当前()

      

    这个方法返回当前指数的值。你是只
    负责跟踪当前指数是什么
    接口并不这样做。

      
        <李>   

      键()   

      这个方法返回当前的价值指数的关键。对于
      foreach循环这是极其重要的,这样可以填充键
      值。

        李   <李>   

      next ()   

      这个方法内部指数向前移动一个条目。

        李   <李>   

      倒带()   

      此方法应该重置内部索引的第一个元素。

        李   <李>   

      有效()   

      此方法应该返回真或假如果有电流
      元素。它被称为后倒带()或()。

        李   
      李   
  

ArrayAccess界面
部署ArrayAccess界面,可以使对象像数组那样操作,但是必须包含四个必须部署的方法

  
      <李> offsetExists(抵消美元)
    这个方法是用来告诉php如果有值
    指定的偏移量的关键。它应该返回
    真或假。李   <李> offsetGet(抵消美元)
    这个方法用于返回指定的值
    的偏移量的关键。李   <李> offsetSet(抵消美元,美元价值)
    中该方法用于设置一个值对象,
    你可以从这个函数抛出异常的
    只读集合。李   <李> offsetUnset(抵消美元)
    值时,将这种方法用于从
    删除数组通过设置()或分配的关键
    null值。对于数值数组,这个
    抵消不应该删除,
    不应该重建索引数组,除非是特别
    行为。
    IteratorAggregate界面
    RecursiveIterator界面
    这个界面用于遍历多层数据,继承了迭代器界面,因而也具有标准的电流()/关键()/下一个有效()和()方法。同时它自己还规定了getChildren()和hasChildren()方法。
    SeekableIterator界面
    SeekableIterator界面也是迭代器界面的延伸,除了迭代器的五个方法以外,还规定了寻求()方法,参数是元素的位置,返回该元素。若该位置不存在,则抛出OutOfBoundsException。
    可数界面
    这个界面规定了一个count()方法,返回结果集的数量
    3。SPL类
    SPL内置类
    查看所有内置类
    foreach (spl_classes()美元关键=祝辞val美元){
    echo $关键!”=祝辞“val美元。& lt; br/祝辞,
    }
    DirectoryIterator类
    这个类用来查看一个目录中所有文件和子目录
    foreach(新DirectoryIterator(“。/?项目美元)
    {
    echo $项目。& lt; br/祝辞,
    }
    抓住(异常$ e)
    {
    回声”没有发现文件!”,
    }   
  

ArrayObject类
此类将数组转换为对象

  

ArrayIterator类
这个类实际上是对ArrayObject类的补充,为后者提供遍历功能。也支持抵消类方法和计数()方法

  

RecursiveArrayIterator类和RecursiveIteratorIterator类
ArrayIterator类和ArrayObject类,只支持遍历一维数组,如果要遍历多维数组,必须先用RecursiveIteratorIterator生成一个迭代器,然后再对这个迭代器使用RecursiveIteratorIterator
FilterIterator
FilterIterator类可以对元素进行过滤,只要在接受()方法中设置过滤条件就可以了。

  

SimpleXMLIterator类
这个类用来遍历xml文件
CachingIterator类
这个类有一个hasNext()方法,用来判断是否还有下一个元素
LimitIterator类
这个类用来限定返回结果集的数量和位置,必须提供抵消和限制两个参数,与SQL命令中限制语的句类似

php spl库的使用