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 相关文章推荐
一个简洁的多级别论坛
Oct 09 PHP
phpfans留言版用到的install.php
Jan 04 PHP
php str_pad 函数用法简介
Jul 11 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
php数组中删除元素的实现代码
Jun 22 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
php stripslashes和addslashes的区别
2014/02/03 PHP
php中的strpos使用示例
2014/02/27 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python工厂函数用法实例分析
2018/05/14 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
django使用graphql的实例
2020/09/02 Python
python文件路径操作方法总结
2020/12/21 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
小学生关于梦想的演讲稿
2014/08/22 职场文书
放飞理想演讲稿
2014/09/09 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js