1:什么是SPL?
SPL,PHP 标准库(Standard PHP Library) ,从 PHP 5.0 起内置的组件和接口,且从 PHP5.3 已逐渐的成熟。SPL 在所有的 PHP5 开发环境中被内置,同时无需任何设置。
PHP 标准库(SPL)是用于解决标准问题(standard problems)的一组接口与类的集合。
SPL 提供了一套标准的数据结构、遍历对象的迭代器、异常,以及一些处理文件的类,它还提供了一系列的函数,比如 spl_autoload_register()。
2:数据结构
双向链表
双链表 (DLL) 是一个链接到两个方向的节点列表。当底层结构是 DLL 时, 迭代器的操作、对两端的访问、节点的添加或删除都具有 O (1) 的开销。因此, 它为栈和队列提供了一个合适的实现。
![](https://img-blog.csdnimg.cn/img_convert/b376e6c4c5a7b4250f4a4689e7977f42.png)
堆
堆是遵循堆属性的树状结构: 每个节点都大于或等于其子级, 使用对堆全局的已实现的比较方法进行比较。
数组
数组是以连续方式存储数据的结构, 可通过索引进行访问。不要将它们与 php 数组混淆: php 数组实际上是按照有序的列表实现的。
映射
映射是一个数据拥有键值对。PHP 数组可以被看作是从整数/字符串到值的映射。SPL 提供了从对象到数据的映射。此映射也可用作对象集。