SplObjectStorage::removeAllExcept()
(PHP 5 >= 5.3.6, PHP 7)
Removes all objects except for those contained in another storage from the current storage
说明
public SplObjectStorage::removeAllExcept( SplObjectStorage$storage) : void
Removes all objects except for those contained in another storage from the current storage.
参数
- $storage
The storage containing the elements to retain in the current storage.
返回值
没有返回值。
范例
SplObjectStorage::removeAllExcept() example
<?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)
The example Kirk provided is not the best option, there's a method "removeAll" that you can pass the SplObjectStore itself, and as the name says, remove all stored objects.
You may remove all elements by passing empty SplObjectStorage $splStorage->removeAllExcept(new SplObjectStorage());