(PHP 5 >= 5.3.6, PHP 7, PHP 8)
SplObjectStorage::removeAllExcept — 別のストレージに含まれているもの以外のすべてのオブジェクトを現在のストレージから取り除く
別のストレージに含まれているもの以外のすべてのオブジェクトを現在のストレージから取り除きます。
storage
現在のストレージに残しておきたい要素を含むストレージ。
取り除かれた後に残ったオブジェクトの数を返します。
例1 SplObjectStorage::removeAllExcept() の例
<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';
$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);
$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);
$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>
上の例の出力は、 たとえば以下のようになります。
bool(false) bool(true)