SplObjectStorage::removeAllExcept
(PHP 5 >= 5.3.6, PHP 7, PHP 8)
SplObjectStorage::removeAllExcept — Removes all objects except for those contained in another storage from the current storage
说明
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.
返回值
Returns the number of remaining objects.
范例
示例 #1 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)

User Contributed Notes 2 notes
kirk at wa dot net dot ua ¶
11 years ago
You may remove all elements by passing empty SplObjectStorage
$splStorage->removeAllExcept(new SplObjectStorage());
hizer at hizercache dot com ¶
6 years ago
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.
备份地址:http://www.lvesu.com/blog/php/splobjectstorage.removeallexcept.php