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 相关文章推荐
实用函数3
Nov 08 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
PHP 命令行参数详解及应用
May 18 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
10个简化PHP开发的工具
Dec 25 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
CI(CodeIgniter)框架视图中加载视图的方法
Mar 24 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
使用PHP开发留言板功能
Nov 19 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
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
详解如何运行vue项目
2019/04/15 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
python中global与nonlocal比较
2014/11/21 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
python破解同事的压缩包密码
2020/10/14 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
诚信承诺书
2015/01/19 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
pytorch 使用半精度模型部署的操作
2021/05/24 Python
详解Vue slot插槽
2021/11/20 Vue.js