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 123nullnullnullnullnullnullnullnullint 1234

2. ArrayIterator、AppendIterator、Countable、ArrayObject

3. SPL 提供的函数

PHP 设计模式 笔记与总结(3)SPL 标准库相关推荐

  1. php+spl+栈,PHP SPL标准库之数据结构栈(SplStack)介绍

    PHP SPL标准库之数据结构栈(SplStack)介绍2020-06-13 22:01:42 栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplS ...

  2. php spl函数,PHP SPL标准库中的常用函数介绍

    这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...

  3. C++prime读书笔记(二)C++标准库:IO、容器、泛型算法、动态内存

    layout: post title: C++prime读书笔记(二)C++标准库:IO.容器.泛型算法.动态内存 description: C++prime读书笔记(二)C++标准库:IO.容器.泛 ...

  4. Go 学习笔记(78)— Go 标准库 net/http 创建服务端(接收 GET、POST 请求)

    使用 net/http 标准库创建一个 http 的 restful api 的服务端,用来处理 GET.POST 等请求. 源代码如下: package mainimport ("enco ...

  5. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)

    1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...

  6. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容

    第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...

  7. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  8. Go 学习笔记(44)— Go 标准库之 os(获取文件状态、获取/修改文件权限、创建、删除目录和文件、获取进程ID、设置获取环境变量)

    1. 概述 os 包提供了操作系统函数的不依赖平台的接口.失败的调用会返回错误值而非错误码.通常错误值里包含更多信息.例如,如果某个使用一个文件名的调用(如Open.Stat)失败了,打印错误时会包含 ...

  9. Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)

    1. 概述 golang 下的 os/exec 包执行外部命令包执行外部命令.它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整. 与 ...

最新文章

  1. 非侵入式监控php,非侵入式监控PHP应用性能监控分析
  2. docker 容器退出自动删除 一次性运行
  3. win8计算机安全模式,Win8.1怎么进入安全模式 两种进入Win8.1安全模式方法介绍
  4. 压缩感知(Compressive Sensing)学习之(一)
  5. linux下oracle 9204 soft only,linux 下oracle 9i的安装
  6. python腾讯语音合成
  7. 一面微创题--字符串逆序输出
  8. SpringBoot2.1.5(15)---配置Profile多环境支持
  9. 一个java处理JSON格式数据的通用类(五)
  10. layUI数据表格可编辑扩展下拉框
  11. expdp的常用用法
  12. hdu2369 Broken Keyboard(类似dfs)
  13. Python-selenium:鼠标键盘事件
  14. 基于深度学习的超大面积室内导航机器人Java后台软件设计
  15. 如何增加(软件测试)自动化测试面试成功率?只需学会主流设计模式PO+关键字驱动!
  16. java 状态模式 同步_多人联机射击游戏中的设计模式应用(二):观察者模式,单例模式,状态模式,适配器模式...
  17. linux res shr区别,linux下VIRT,RES,SHR的含义
  18. 你是否同意放开二胎政策
  19. CAE软件安装包(百度网盘)
  20. vue项目中使用flv.js实时播放 断流重连 关闭断流开发心得

热门文章

  1. 基于特征的对抗迁移学习论文_[论文笔记] 对抗样本不是bugs,而是特征
  2. 话费直充/三网直冲/联通直充/电信直充/移动直充/系统源码
  3. 去除狂人采集器添加在帖子中的广告信息
  4. Asp.net网站开发架构设计要求
  5. Bootstrap 3 : 图片上传预览 image upload preview
  6. Linux: sysv-rc-conf管理Ubuntu server开机启动服务
  7. 深入理解Magento-第九章-修改、扩展、重写Magento代码
  8. magento 增加一个layout template
  9. CodeIgniter中URL含有中文字符串的解决方案
  10. 视觉SLAM常用的数据集集合【3】