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
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
在mysql数据库原有字段后增加新内容
Nov 26 PHP
Admin generator, filters and I18n
Oct 06 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
PHP不用第三变量交换2个变量的值的解决方法
Jun 02 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
destoon首页调用求购供应信息的地区名称的方法
Aug 21 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
PHP chunk_split()函数讲解
Feb 12 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
JQuery基础语法小结
2015/02/27 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python实现字符串格式化输出的方法详解
2017/09/20 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
python中for in的用法详解
2020/04/17 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
python中怎么表示空值
2020/06/19 Python
Pycharm Git 设置方法
2020/09/15 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
幼儿园英语教学反思
2014/01/30 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers