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