php SPL学习
数据结构
SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能
SplStack - 该SplStack类提供了一种使用双向链表实现栈的主要功能
SplQueue - 该SplQueue类提供了一种使用双向链表实现队列的主要功能
SplHeap - 该SplHeap类提供了堆的主要功能
SplMaxHeap - 该SplMaxHeap类提供了堆的主要功能,保持最大的顶部
SplMinHeap - 该SplMinHeap类提供了堆的主要功能,保持最低限度的顶部
SplPriorityQueue - 该SplPriorityQueue类提供了优先队列的主要功能,采用了最大堆实现
SplFixedArray - 该SplFixedArray类提供阵列的主要功能。一个SplFixedArray和正常PHP数组之间的主要区别在于,SplFixedArray长度是固定的,并允许范围为指标内的整数。的优点在于,它允许较快的数组实现
SplObjectStorage - 该SplObjectStorage类从对象到的数据提供地图或忽略的数据,一个对象集。此双用途可以是在涉及需要唯一地识别物体的许多情况下是有用的 迭代器
AppendIterator - 这个迭代器能陆续遍历几个迭代器
ArrayIterator - 这个迭代器允许在遍历数组和对象时删除和更新值与键
CachingIterator - 这个对象支持对另一个迭代器缓存的迭代
CallbackFilterIterator - 返回过滤器接口类
DirectoryIterator - 该DirectoryIterator类提供了查看文件系统目录内容的简单接口
EmptyIterator - 空迭代器
FilesystemIterator - 文件系统迭代
FilterIterator - 这个抽象类的遍历并过滤出不想要的值.这个类应该被实现了迭代过滤器的类继承 FilterIterator::accept()方法必须被子类实现.
GlobIterator - 遍历一个文件系统行为类似于 glob()
InfiniteIterator - 无限迭代器允许一个无限循环访问迭代器,而无需在到达其最终手动倒带迭代器
IteratorIterator - 这个迭代器封装允许任何转换即是可遍历到一个Iterator。要明白,没有实现迭代大多数类都有理由,最有可能的,他们不允许完整迭代器的功能集是很重要的。如果是这样,应提供技术,以防止误操作,否则指望异常或致命错误
LimitIterator - LimitIterator类允许遍历一个 Iterator 的限定子集的元素
MultipleIterator - 其依次遍历所有连接迭代的迭代器
NoRewindIterator - 这个迭代器无法倒带
ParentIterator - 这个扩展FilterIterator允许使用RecursiveIteratorIterator递归迭代,只显示那些有子元素的
RecursiveArrayIterator - 该迭代器允许未设置和修改值和键在遍历数组和对象以相同的方式为ArrayIterator。另外,可以遍历当前重复条目
RecursiveCachingIterator - 该RecursiveCachingIterator类
RecursiveCallbackFilterIterator - 该RecursiveCallbackFilterIterator类
RecursiveDirectoryIterator - 该RecursiveDirectoryIterator提供一个接口对文件系统的目录遍历递归
RecursiveFilterIterator - 这个抽象迭代器过滤掉不需要的值了RecursiveIterator。此类应扩展以实现自定义过滤器。递归FilterIterator:: accept()方法必须在子类实现。
RecursiveIteratorIterator - 可用于通过递归迭代器进行迭代
RecursiveRegexIterator - 这种递归迭代器可以通过正则表达式过滤另一个递归迭代器
RecursiveTreeIterator - 允许迭代过RecursiveIterator生成一个ASCII图形树
RegexIterator - 这种迭代器可以用于过滤基于正则表达式的另一个迭代器 接口
Countable - 类实现 Countable 可被用于 count() 函数.
OuterIterator - 实施OuterIterator类可用于遍历迭代器
RecursiveIterator - 实施RecursiveIterator类可用于递归迭代迭代器
SeekableIterator - 查找迭代器 异常
BadFunctionCallException - 如果回调指的是未定义的功能或抛出异常如果某些参数丢失
BadMethodCallException - 如果回调是指一个未定义的方法或抛出异常如果某些参数丢失
DomainException - 如果值不符合规定的有效数据域的异常
InvalidArgumentException - 如果一个参数是预期的类型不抛出异常
LengthException - 如果长度为无效异常抛出
LogicException - 异常表示程序逻辑错误。这种异常应直接导致在你的代码修复
OutOfBoundsException - 如果值不是一个有效的密钥抛出异常。这表示不能在编译时检测到错误
OutOfRangeException - 当被要求非法索引抛出异常。这表示应该在编译时检测到错误
OverflowException - 添加元素,以一个完整的容器时抛出异常
RangeException - 抛出异常程序执行期间,指示范围内的误差。通常,这意味着有比下溢/溢出以外的算术错误。这是DomainException的运行时版本
RuntimeException的 - 如果发生只能在运行时发现了一个错误的异常
UnderflowException - 一个空的容器上执行无效操作时,比如移除元素抛出异常
UnexpectedValueException - 如果值不以一组值相匹配的异常。这通常发生在一个函数调用另一个函数,并期望返回值是一个某种类型或价值不包括算术或缓冲相关的错误 SPL函数
class_implements - 返回指定的类实现的所有接口。
class_parents - 返回指定类的父类。
class_uses - 返回给定类使用的特质
iterator_apply - 为迭代器中每个元素调用一个用户自定义函数
iterator_count - 计算迭代器中元素的个数
iterator_to_array - 将迭代器中的元素拷贝到数组
spl_autoload_call - 尝试调用所有已注册的__autoload()函数来装载请求类
spl_autoload_extensions - 注册并返回spl_autoload函数使用的默认文件扩展名。
spl_autoload_functions - 返回所有已注册的__autoload()函数。
spl_autoload_register - 注册给定的函数作为__autoload的实现
spl_autoload_unregister - 注销已注册的__autoload()函数
spl_autoload - __autoload()函数的默认实现
spl_classes - 返回所有可用的SPL类
spl_object_hash - 返回指定对象的哈希ID 文件处理
SplFileInfo - 该SplFileInfo类提供了一个高层次的面向对象的接口信息,单个文件
SplFileObject - SplFileObject类为文件提供了一个面向对象接口.
SplTempFileObject - 该SplTempFileObject类提供了一个临时文件的面向对象的接口 各种类及接口
ArrayObject的 - 这个类允许对象的数组
SplObserver - 该SplObserver接口用于一起SplSubject实现观察者设计模式
SplSubject - 该SplSubject接口用于一起SplObserver实现观察者设计模式
/*
* SplDoublyLinkedList
*
* SplDoublyLinkedList ::add - 添加/插入新值指定索引处
SplDoublyLinkedList ::bottom - 在从双重链接列表的开头的节点窥视(或翻译为吧指针移到底部,即为双向链表所以是按照当前你处理的方法来移动到底部)
SplDoublyLinkedList :: __construct - 构造一个新的双向链表
SplDoublyLinkedList ::count - 计算在双向链表元素的数量。
SplDoublyLinkedList :: current - 返回当前数组节点值
SplDoublyLinkedList :: getIteratorMode - 设置返回迭代的方式
SplDoublyLinkedList ::isEmpty - 检查是否双向链表为空。
SplDoublyLinkedList ::key - 返回当前节点索引
SplDoublyLinkedList ::next - 移动到下一个节点
SplDoublyLinkedList :: offsetExists - 返回请求$index是否存在
SplDoublyLinkedList :: offsetGet - 在指定的$index返回值
SplDoublyLinkedList :: offsetSet - 设置在指定的$index 到$newval值
SplDoublyLinkedList :: offsetUnset - 在指定$index取消将值
SplDoublyLinkedList ::pop - 从双向链表的末尾压出一个节点
SplDoublyLinkedList ::prev - 移动到前一个条目
SplDoublyLinkedList ::push - 在双向链表的末尾压入一个节点
SplDoublyLinkedList :: rewind - 倒迭代器回到起点
SplDoublyLinkedList ::serialize - 序列化存储
SplDoublyLinkedList :: setIteratorMode - 设置迭代的方式
SplDoublyLinkedList ::shift - 从双向链表的开始压出(移除)一个节点
SplDoublyLinkedList ::top - 从双向链表的最后节点偷窥
SplDoublyLinkedList ::unserialize - Unserializes存储
SplDoublyLinkedList ::unshift - 预先考虑双向链开始压入(移入)一个节点
SplDoublyLinkedList ::valid - 检查是否双向链表中是否有更多的节点
*
*
*/
$list = new SplDoublyLinkedList();
$list->push('a');
$list->push('b');
$list->push('c');
$list->push('d');
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
for ($list->rewind(); $list->valid(); $list->next()) {
echo $list->current()."\n";
}
php SPL学习的更多相关文章
- SPL学习 迭代器
主要学习内容: 慕课网的spl视频教程 阮一峰SPL学习笔记 http://www.ruanyifeng.com/blog/2008/07/php_spl_notes.html SPL类详解 http ...
- u-boot spl 学习总结
什么是SPL? SPL(secondary program loader)是一个十分小的bin文件,它是用来引导主u-boot文件.对于一些SRAM很小的SOC,无法一次性加载ROM中的bootloa ...
- 【Linux系列汇总】小白博主的嵌入式Linux实战快速进阶之路(持续更新)
我把之前在学习嵌入式Linux和工作中遇到问题和相关经验等,一起整理到这里,方便自己查阅和学习,温故而知新,如果能帮助到您,请帮忙点个赞: 本文的宗旨 嵌入式Linux 的项目通常需要一个团队来开发, ...
- php SPL标准库iterator和ArrayAccess的学习
最近在补充学习php基础的时候看到了spl的介绍,学习了一下iterator和arrayAccess的使用,iterator主要是对象的迭代,一般可以用在容器里面,或者工厂模式里面,最常见的应用场景就 ...
- SPL接口学习总结
迭代器接口描述(接口在C里定义,这只是描述) interface Iterator { public function current(); public function key(); public ...
- u-boot 学习系列 1 - SPL
u-boot这个东西从自我N年前使用到现在,变化好多,今天开始重新研究下,本系列的研究都是基于BeagleBoneBlack(bbb)开发板和 u-boot v201801版本的. SPL介绍 在源代 ...
- 【夯实PHP基础】PHP标准库 SPL
PHP SPL笔记 这几天,我在学习PHP语言中的SPL. 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记.不然记不住,以后要用的时候,还是要从头学起. 由于这是供 ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- php学习笔记2016.1
基本类型 PHP是一种弱类型语言. PHP类型检查函数 is_bool() is_integer() is_double() is_string() is_objec ...
随机推荐
- blade快速使用指南
一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...
- js三级省市区选择
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 8、显示程序占用内存多少.txt
方法一: 要加单元 PsAPI procedure TForm1.tmr1Timer(Sender: TObject); begin edt1.Text:= format('memory use: % ...
- Python基础11- 函数之自定义函数
自定义函数语法结构:def fun1([x],[y],....): 语句1 语句2 使用def语句来定义函数,在def后依次写出函数名.小括号.参数(可无).冒号,然后缩进写函数体 1.无参函数:de ...
- linux tomcat配置https
自己生成一个ssl证书,因为是自己生成的所以该证书,不被浏览器信任(具体表现https前面有个X) [root@centos apache-tomcat-]# keytool -genkey -ali ...
- ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework
一.创建Model MVC中的Model是用来给View提供显示数据的对象. 这里我们首先创建一个Model对象. 在解决方案资源管理器中右键点击Models文件夹,选择添加->类.添加一个名为 ...
- WPF拖放功能实现zz
写在前面:本文为即兴而作,因此难免有疏漏和词不达意的地方.在这里,非常期望您提供评论,分享您的想法和建议. 这是一篇介绍如何在WPF中实现拖放功能的短文. 首先要读者清楚的一件事情是:拖放主要分为拖放 ...
- Start_Learning_Python 03 条件、循环
if循环 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 条件语句和循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false ...
- 【转】敏捷开发 Scrum 总结
转:http://www.open-open.com/lib/view/open1330413325514.html 最近把之前学习 Scrum 的资料整理为一篇文档,在接下来的团队和项目开发中,根据 ...
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)
1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...