📅  最后修改于: 2023-12-03 15:03:39.648000             🧑  作者: Mango
SplObjectStorage
是一个用来存储对象的 PHP 内置类。它继承自 SplObject
, 并且实现了 Countable
, IteratorAggregate
, 和 Serializable
接口。它提供了一个以对象为键的映射关系,以及一些方便的方法来进行对象的增加、删除和遍历。其中包含 contains()
函数,用于判断某个对象是否已经存在于 SplObjectStorage
中。
public bool SplObjectStorage::contains (object $object)
object
: 所要检查的对象。如果存在指定的对象则返回 true
,反之返回 false
。
<?php
class Foo
{
private $id;
public function __construct(int $id)
{
$this->id = $id;
}
public function getId(): int
{
return $this->id;
}
}
$foo1 = new Foo(1);
$foo2 = new Foo(2);
$foo3 = new Foo(3);
$storage = new SplObjectStorage();
$storage->attach($foo1);
$storage->attach($foo2);
var_dump($storage->contains($foo1)); // true
var_dump($storage->contains($foo3)); // false
输出结果为:
bool(true)
bool(false)
SplObjectStorage
中的 contains()
函数能够方便地判断所给定的对象是否已经存在于容器内。它是 SplObjectStorage
中 一项非常实用的函数。