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分页函数
Jul 08 PHP
用PHP读取RSS feed的代码
Aug 01 PHP
PHP5 字符串处理函数大全
Mar 23 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
php设计模式之简单工厂模式详解
Sep 04 PHP
php实现图片等比例缩放代码
Jul 23 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
动态加载js的几种方法
2006/10/23 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
vue2路由基本用法实例分析
2020/03/06 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python 字典(dict)按键和值排序
2016/06/28 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python文件拆分与重组实例
2018/12/10 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
家庭教育先进个人事迹材料
2014/01/24 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
委托函范文
2015/01/29 职场文书
大学生学期个人总结
2015/02/12 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
主题班会开场白
2015/06/01 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL