PHP SplObjectStorage使用实例


Posted in PHP onMay 12, 2015

PHP SPL SplObjectStorage是用来存储一组对象的,特别是当你需要唯一标识对象的时候。
PHP SPL SplObjectStorage类实现了Countable,Iterator,Serializable,ArrayAccess四个接口。可实现统计、迭代、序列化、数组式访问等功能。

PHP SplObjectStorage使用实例

看下面一个简单的例子:

class A {
  public $i;
  public function __construct($i) {
    $this->i = $i;
  }
}
 
$a1 = new A(1);
$a2 = new A(2);
$a3 = new A(3);
$a4 = new A(4);
 
$container = new SplObjectStorage();
 
//SplObjectStorage::attach 添加对象到Storage中
$container->attach($a1);
$container->attach($a2);
$container->attach($a3);
 
//SplObjectStorage::detach 将对象从Storage中移除
$container->detach($a2);
 
//SplObjectStorage::contains用于检查对象是否存在Storage中
var_dump($container->contains($a1)); //true
var_dump($container->contains($a4)); //false
 
//遍历
$container->rewind();
while($container->valid()) {
  var_dump($container->current());
  $container->next();
}
PHP 相关文章推荐
在 PHP 中使用随机数的三个步骤
Oct 09 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP中预定义的6种接口介绍
May 12 #PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 #PHP
PHP 反射(Reflection)使用实例
May 12 #PHP
PHP Reflection API详解
May 12 #PHP
php通过curl模拟登陆DZ论坛
May 11 #PHP
PHP中的魔术方法总结和使用实例
May 11 #PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 #PHP
You might like
PHP JSON 数据解析代码
2010/05/26 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python实现图片处理和特征提取详解
2017/11/13 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
numpy数组广播的机制
2019/07/12 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
物流专业大学生的自我鉴定
2013/11/13 职场文书
市场部规章制度
2014/01/24 职场文书
高中运动会入场词
2014/02/14 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
个人主要事迹材料
2014/08/26 职场文书
节能环保演讲稿
2014/08/28 职场文书
公司表扬稿范文
2015/05/05 职场文书
检讨书模板大全
2015/05/07 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python