PHP SplObject Strage使用例


PHP SPL SplObject Strageは、オブジェクトのセットを記憶するために使用されるもので、特に、オブジェクトを一意に識別する必要があるとき。
PHP SPL SplObject Strage類はCountable、Iterator、Serializable、ArayAccessの4つのインターフェースを実現しました。統計、反復、逐次化、配列アクセスなどの機能を実現できます。

次の簡単な例を見てください。

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