PHP 设计模式 笔记与总结(3)SPL 标准库
SPL 库的使用(PHP 标准库)
1. SplStack,SplQueue,SplHeap,SplFixedArray 等数据结构类
① 栈(SplStack)(先进后出的数据结构)
index.php:
<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); $stack = new SplStack();
$stack->push("data1\n"); //入栈
$stack->push("data2\n"); echo $stack->pop(); //出栈
echo $stack->pop();
运行,页面输出(查看源文件):
data2
data1
② 队列(SplQueue)(先进先出的数据结构)
index.php:
<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); $queue = new SplQueue();
$queue->enqueue("data1\n"); //入队
$queue->enqueue("data2\n"); echo $queue->dequeue(); //出队
echo $queue->dequeue();
运行,页面输出(查看源文件):
data1
data2
③ 堆(SplHeap)
最小对:SplMinHeap
index.php:
<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); $head = new SplMinHeap();
$head->insert("data1\n"); //存入堆
$head->insert("data2\n"); echo $head->extract(); //提取堆中的数据
echo $head->extract();
运行,页面输出(源代码):
data1
data2
④ 固定尺寸的数组(SplFixedArray )
index.php:
<?php
define('BASEDIR',__DIR__); //定义根目录常量
include BASEDIR.'/Common/Loader.php';
spl_autoload_register('\\Common\\Loader::autoload'); $array = new SplFixedArray(10); //固定长度的数组,例如长度为10
$array[0] = 123;
$array[9] = 1234; var_dump($array);
运行,页面输出:
object(SplFixedArray)[1]
int 123
null
null
null
null
null
null
null
null
int 1234
2. ArrayIterator、AppendIterator、Countable、ArrayObject
3. SPL 提供的函数
PHP 设计模式 笔记与总结(3)SPL 标准库的更多相关文章
- PHP SPL标准库-接口
PHP SPL标准库有一下接口: Countable OuterIterator RecursiveIterator SeekableIterator SplObserver SplSubject A ...
- PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题)
PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题) 一.总结 SplStack就是继承双链表(SplDoublyLinkedList)实 ...
- php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便)
php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便) 一.总结 直接看代码实例,特别方便易懂 thinkphp控制器利眠宁不支持(说明 ...
- PHP的SPL标准库里面的堆(SplHeap)怎么使用
PHP的SPL标准库里面的堆(SplHeap)怎么使用 一.总结 1.因为SplHeap是抽象类,所以要先继承,实现里面的抽象方法compare后,才能new对象使用. 二.PHP的SPL标准库里面的 ...
- 【SPL标准库专题(1)】 SPL简介
什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写. 根据官方定义,它是"a collection of interfaces and classes th ...
- 《C++ Primer》学习笔记【第二部分 C++标准库】
第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中 2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...
- A Byte of Python 笔记(12)python 标准库:sys、os,更多内容
第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...
- C/C++ 错误笔记-解决swap函数与标准库的std::swap函数冲突的问题
下午写了一份代码: #include <iostream> using namespace std; // 模板1:交换基本类型的值 template<typename T> ...
- 笔记-10:处理时间的标准库-time库
1.time库介绍 主要用来处理时间的标准库. time库提供了系统级精确计时器的计时功能,可以用来分析程序性能,也可让程序暂停运行时间. time库的功能主要分为:时间处理.时间格式化.计时. 2. ...
随机推荐
- jQuery基础DOM和CSS操作
$('#box').html();//获取 html 内容$('#box').text();//获取文本内容,会自动清理 html 标签$('#box').html('<em>www.li ...
- cocos2dx实现象棋之运动
1.头文件 void moveStone(int moveid, int killid, int x, int y); void moveComplete(CCNode*, void*); bool ...
- Hibernate核心思想—ORM机制(一)
转:http://blog.csdn.net/wanghuan203/article/details/7566518 hibernate是一个采用ORM(Object/Relation Mapping ...
- 如何将win7安装到 移动硬盘/U盘 及 VHD、BCD等相关知识 链接汇总
如何将win7安装到 移动硬盘/U盘? 从u盘启动win7/2008 R2的方法,更新:换机器免sysprep的方法:http://www.360doc.com/content/11/1103/14/ ...
- hdu 4185 二分图匹配
题意用1*2的木板覆盖矩阵中的‘#’,(木板要覆盖的只能是‘#’),问最多能用几个木板覆盖 将#抽象为二分图的点,一个木板就是一个匹配,注意最后结果要除以2 Sample Input 1 6 .... ...
- 代码实现UI控件
参考 Android 用纯代码实现复杂界面
- 手机响应式wap网页最佳方案
wap页面怎么做? 这个问题困扰了我好久,在PC上我们惯用的px单位在手机上根本不适用,即使我们写了<meta name="viewport" content="w ...
- [转]关于int整形变量占有字节问题
int的长度由处理器(16位,32位,64位)和比哪一期决定. 首先从处理器来讲 :16位处理器中的int 占有16位 即2个字节 32位处理器中int ...
- js:语言精髓笔记13--语言技巧
消除代码全局变量名占用: //本质是使用匿名函数: void function(x, y, z) { console.log(x + y + z); }(1,2,3); //要使函数内的变量不被释放, ...
- 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程
指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2 指示灯组 指示灯组的放大图如图1.5所示. 图1.5 指示灯组 各个指示灯对应的功能如下: q RX:对应于0号端口, ...