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 123nullnullnullnullnullnullnullnullint 1234
2. ArrayIterator、AppendIterator、Countable、ArrayObject
3. SPL 提供的函数
PHP 设计模式 笔记与总结(3)SPL 标准库相关推荐
- php+spl+栈,PHP SPL标准库之数据结构栈(SplStack)介绍
PHP SPL标准库之数据结构栈(SplStack)介绍2020-06-13 22:01:42 栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplS ...
- php spl函数,PHP SPL标准库中的常用函数介绍
这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...
- C++prime读书笔记(二)C++标准库:IO、容器、泛型算法、动态内存
layout: post title: C++prime读书笔记(二)C++标准库:IO.容器.泛型算法.动态内存 description: C++prime读书笔记(二)C++标准库:IO.容器.泛 ...
- Go 学习笔记(78)— Go 标准库 net/http 创建服务端(接收 GET、POST 请求)
使用 net/http 标准库创建一个 http 的 restful api 的服务端,用来处理 GET.POST 等请求. 源代码如下: package mainimport ("enco ...
- Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)
1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...
- A Byte of Python 笔记(12)python 标准库:sys、os,更多内容
第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...
- Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)
1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...
- Go 学习笔记(44)— Go 标准库之 os(获取文件状态、获取/修改文件权限、创建、删除目录和文件、获取进程ID、设置获取环境变量)
1. 概述 os 包提供了操作系统函数的不依赖平台的接口.失败的调用会返回错误值而非错误码.通常错误值里包含更多信息.例如,如果某个使用一个文件名的调用(如Open.Stat)失败了,打印错误时会包含 ...
- Go 学习笔记(43)— Go 标准库之 os/exec(执行外部命令、非阻塞等待、阻塞等待、命令输出)
1. 概述 golang 下的 os/exec 包执行外部命令包执行外部命令.它包装了 os.StartProcess 函数以便更容易的修正输入和输出,使用管道连接I/O,以及作其它的一些调整. 与 ...
最新文章
- 非侵入式监控php,非侵入式监控PHP应用性能监控分析
- docker 容器退出自动删除 一次性运行
- win8计算机安全模式,Win8.1怎么进入安全模式 两种进入Win8.1安全模式方法介绍
- 压缩感知(Compressive Sensing)学习之(一)
- linux下oracle 9204 soft only,linux 下oracle 9i的安装
- python腾讯语音合成
- 一面微创题--字符串逆序输出
- SpringBoot2.1.5(15)---配置Profile多环境支持
- 一个java处理JSON格式数据的通用类(五)
- layUI数据表格可编辑扩展下拉框
- expdp的常用用法
- hdu2369 Broken Keyboard(类似dfs)
- Python-selenium:鼠标键盘事件
- 基于深度学习的超大面积室内导航机器人Java后台软件设计
- 如何增加(软件测试)自动化测试面试成功率?只需学会主流设计模式PO+关键字驱动!
- java 状态模式 同步_多人联机射击游戏中的设计模式应用(二):观察者模式,单例模式,状态模式,适配器模式...
- linux res shr区别,linux下VIRT,RES,SHR的含义
- 你是否同意放开二胎政策
- CAE软件安装包(百度网盘)
- vue项目中使用flv.js实时播放 断流重连 关闭断流开发心得
热门文章
- 基于特征的对抗迁移学习论文_[论文笔记] 对抗样本不是bugs,而是特征
- 话费直充/三网直冲/联通直充/电信直充/移动直充/系统源码
- 去除狂人采集器添加在帖子中的广告信息
- Asp.net网站开发架构设计要求
- Bootstrap 3 : 图片上传预览 image upload preview
- Linux: sysv-rc-conf管理Ubuntu server开机启动服务
- 深入理解Magento-第九章-修改、扩展、重写Magento代码
- magento 增加一个layout template
- CodeIgniter中URL含有中文字符串的解决方案
- 视觉SLAM常用的数据集集合【3】