简介
SplObjectStorage 类提供从对象到数据的映射,或者通过忽略数据,提供对象集。在需要唯一标识对象的许多情况下,这种双重用途非常有用。
当需要存储一组对象,并循环遍历时,可以使用该数据结构。
官网介绍:https://www.php.net/manual/zh/class.splobjectstorage.php
使用示例:
$s = new \SplObjectStorage();
$object1 = new Animal('dog');
$object2 = new Animal('cat');
$object3 = new Animal('pig');
$s->attach($object1);
$s->attach($object2);
$s->attach($object3);
while($s->valid()) {
$index = $s->key();
$object = $s->current();
echo $index.'-'.$object->getName().'<br>';
$s->next();
}
class Animal
{
private $name='';
public function __construct($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
}