php标准库spl栈SplStack如何使用?

一、总结

php标准库spl栈SplStack介绍。(SplStack类)(各种方法都支持)

1、SplStack:$stack = new SplStack(); //类:new关键字  并且写法为SplStack(两个都大写,后一个大写因为驼峰命名法,前一个大写因为类首字母大写)
2、各种方法都支持:$stack->push('a'); //因为是php类,所以是箭头->调用方法

二、php标准库spl栈SplStack介绍

栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈)

SplStack就是继承双链表(SplDoublyLinkedList)实现栈。

类摘要如下:

简单使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//把栈想象成一个颠倒的数组
$stack = new SplStack();
/**
 * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:
 * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP (默认值,迭代后数据保存)
 * (2)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE (迭代后数据删除)
 */
$stack->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE);
$stack->push('a');
$stack->push('b');
$stack->push('c');
   
$stack->pop(); //出栈
   
$stack->offsetSet(0, 'first');//index 为0的是最后一个元素
   
foreach($stack as $item) {
 echo $item . PHP_EOL; // first a
}
   
print_R($stack); //测试IteratorMode

最新文章

  1. iOS开发 适配iOS10以及Xcode8[转]
  2. Mysql游标
  3. loj 1406(状态压缩)
  4. 今天Apple证书更新,提供 "证书的签发者无效" 解决办法
  5. HBuilder:最快的Web开发IDE
  6. MongoDB 权限认证
  7. wcf托管在IIS上,提示未能加载
  8. Java这个名字怎么来
  9. eclipse配置maven + 创建maven项目
  10. java基础(五):谈谈java中的多线程
  11. 移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)
  12. 在Node.js使用Promise的方式操作Mysql
  13. [db]mysql全量迁移db
  14. 东芝 B-EV4 打印机 串口打印命令
  15. Windows 10安装Python 3 7成功打印Hello World!
  16. 【SPL标准库专题(10)】SPL Exceptions
  17. Java并发编程读书笔记(一)
  18. SQl CASE 语句的嵌套使用方式
  19. Thread(线程)三
  20. js 时间戳的转化,js 日期转成标准字符串,日期格式的相互转化

热门文章

  1. UVA 11557 - Code Theft (KMP + HASH)
  2. 20款PHP版WebMail开源项目
  3. 学习笔记:Vue——动态组件&异步组件
  4. 00092_字符输出流Writer
  5. Python中的Sets数据结构
  6. 优雅地使用Retrofit+RxJava(二)
  7. 10.14 android输入系统_多点触摸驱动测试及Reader线程、InputStage分析
  8. 10.4 android输入系统_框架、编写一个万能模拟输入驱动程序、reader/dispatcher线程启动过程源码分析
  9. 使用u盘量产工具修复写保护的u盘
  10. PostgreSQL 序列