PHP SplObjectStorage使用实例

 更新时间:2015年05月12日 09:09:20   投稿:junjie  
这篇文章主要介绍了PHP SplObjectStorage使用实例,SplObjectStorage是SPL标准库中的数据结构对象容器,用来存储一组对象,特别是当你需要唯一标识对象的时候,需要的朋友可以参考下

PHP SPL SplObjectStorage是用来存储一组对象的,特别是当你需要唯一标识对象的时候。
PHP SPL SplObjectStorage类实现了Countable,Iterator,Serializable,ArrayAccess四个接口。可实现统计、迭代、序列化、数组式访问等功能。

看下面一个简单的例子:

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并发加锁示例

    本文介绍了php并发加锁示例,对数据进行加锁,只容许一个用户在一个时间内进行操作,这个时候就需要用到锁了,需要的朋友可以了解一下。
    2016-10-10
  • php加密解密字符串示例

    php加密解密字符串示例

    加密解密在一个系统中的应用是非常常见的需求,PHP做的网站中,也会经常使用的PHP加密解密字符串函数.
    2016-10-10
  • php面向对象值单例模式

    php面向对象值单例模式

    一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务,需要的朋友可以参考下
    2016-05-05
  • php格式化金额函数分享

    php格式化金额函数分享

    这篇文章主要介绍了php格式化金额函数分享,需要的朋友可以参考下
    2015-02-02
  • PHP 布尔值的自增与自减的实现方法

    PHP 布尔值的自增与自减的实现方法

    这篇文章主要介绍了PHP 布尔值的自增与自减的实现方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • Thinkphp3.2.3反序列化漏洞实例分析

    Thinkphp3.2.3反序列化漏洞实例分析

    这篇文章主要为大家介绍了Thinkphp3.2.3反序列化漏洞实例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • PHP实现八皇后算法

    PHP实现八皇后算法

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。这篇文章主要介绍了PHP实现八皇后算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 详解如何在PHP中使用布隆过滤器

    详解如何在PHP中使用布隆过滤器

    布隆过滤器(Bloom Filter)是一种用于快速判断一个元素是否属于某个集合的概率型数据结构,本文主要为大家介绍一下如何在PHP中使用布隆过滤器,需要的可以参考一下
    2023-06-06
  • Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解

    Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解

    这篇文章主要介绍了Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Yii2框架自定义类统一处理url操作示例

    Yii2框架自定义类统一处理url操作示例

    这篇文章主要介绍了Yii2框架自定义类统一处理url操作,涉及Yii2框架资源管理与配置相关操作技巧,需要的朋友可以参考下
    2019-05-05

最新评论