PHP SPL相关

目录

1. 简介

  1. 什么是SPL
  2. 什么是Iterator
  3. SPL数据结构
  4. SPL迭代器
  5. SPL函数
  6. SPL文件处理
  7. 各种类接口

 1.1 什么是SPL

SPL是解决典型(standard porblems)问题的一组接口和类的集合。

1.2 什么是Iterator 

它是SPL的核心理念,直译过来就是迭代器。迭代器是常见的设计模式之一,有很多使用场景(遍历文件,数据库)。通俗的说,Iterator能够使很多不同的数据结构(文件,数据库搜索的结果集),都能有统一的操作界面(比如:遍历,foreach)。

1.3 SPL的数据结构

  1. SplDoublyLinkList   双向链表
  2. SplStack 通过双向链表提供栈的主要功能(就是栈)
  3. SplQueue 通过双向链表提供队列的主要功能
  4. SplHeap  通过双向链表提供堆的主要功能(抽象类 )
  5. SplMaxHeap,SplMinHeap 最大堆和最小堆(继承SplHeap)
  6. SplPriorityQueue 优先级队列 (底层的数据结构是堆)
  7. SplFixedArray 定长数组
  8. SplObjectStorage 对象管理器

1.4 SPL 迭代器

  1. AppendIterator 迭代器的迭代器
  2. ArrayIterator 数组迭代器
  3. CachingIterator (此对象支持在另一个迭代器上缓存迭代。)
  4. DirectoryIterator (文件和系统目录的迭代)
  5. EmpryIterator 空迭代器
  6. FilesystemIterator 文件迭代器
  7. FilterLteraTor (抽象类)迭代遍历的时候过滤不需要的值
  8. GlobIterator (遍历一个文件系统 类似于golb)  
  9. InfiniteIterator 无限迭代器
  10. IteratorIterator 迭代器包装器
  11. LimitIterator 遍历一个iterator限定子集元素
  12. MultipleIterator 可以把多个迭代器组合为一个整体访问
  13. NoRewindIterator 忽略rewind 可以在多个部分foreach
  14. PraentIterator 对filterItreator扩展 允许recursive操作 只显示有子元素的元素
  15. RecursiveArrayIterator  功能类似arrayIterator  可以递归当前迭代器的条目
  16. RecursiveCachingIterator 
  17. RecursiveCallbackFilterIterator 
  18. RecursiveDirectoryLierator 
  19. RecursiveIteratorIterator 
  20. RecursiveRegexIterator 正则表达式过滤
  21. RecursiveTreeIterator 迭代生成ASCII树
  22. RegexIterator 正则迭代器

 1.5 SPL函数

  1. class_implements  --- 返回指定类实现的所有接口
  2. class_parents --- 返回指定类的父类
  3. class_uses --- 返回指定类的trait
  4. iterator_apply --- 为迭代器每一个元素调用一个用户自定义函数
  5. iterator_count --- 计算迭代器中元素个数
  6. iterator_to_array --- 将迭代器中的元素拷贝到数组
  7. spl_aotoload_call --- 尝试调用所有已经注册的__autoload()函数来装载请求类
  8. spl_autoload_extendsions --- 注册并返回spl_autoload 函数使用的默认文件扩展名
  9. spl_autoload_functions --- 返回所有已注册的__autolaod()函数
  10. spl_autoload_register --- 注册指定函数作为__autoload 的实现
  11. spl_autoload_unregister --- 注销已经注册的__autoload 函数
  12. spl_autoload --- __autoload() 函数的默认实现
  13. spl_classes --- 返回所有可用的SPL类
  14. spl_object_hash --- 返回指定对象的hash id
  15. spl_object_id --- 返回给定对象的handle

1.6  文件处理

  1. SplFileInfo  为单个文件的信息提供了一个高级的面向对象的接口(接口)
  2. SplFileObject 为文件提供了一个面向对象接口(类)
  3. SplTempFileObejct 继承了上面的

1.7  各种类接口

  1. ArrayObject 可以将对象作为数组一样工作
  2. SplObserver SplObjserver与SplSubject一起使用 实现观察者模式
  3. SplSubject 
  4. Countable 实现接口可以被用于count()函数
  5. OuterIterator  实现的接口可以迭代迭代器
  6. RecursiveIterator  实现接口的类可以用于递归迭代迭代器
  7. SeekableIterator  搜索迭代器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值