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();
}