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 IPV6正则表达式验证代码
Feb 16 PHP
php 无法载入mysql扩展
Mar 12 PHP
php合并js请求的例子
Nov 01 PHP
php实现文件下载实例分享
Jun 02 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
php+ajax实现无刷新分页
Nov 18 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
smarty的section嵌套循环用法示例
May 28 PHP
YII框架批量插入数据的方法
Mar 18 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 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中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
javascript实现动态统计图开发实例
2015/11/21 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python3图片转换二进制存入mysql
2013/12/06 Python
Python基本数据类型详细介绍
2014/03/11 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
新教师工作感言
2014/02/16 职场文书
建房协议书
2014/04/11 职场文书
入党介绍人评语
2014/05/06 职场文书
单位委托书怎么写
2014/09/21 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
安全保证书格式
2015/02/28 职场文书
2016教师国培研修感言
2015/12/08 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Python 多线程处理任务实例
2021/11/07 Python