SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6)

SplObjectStorage::removeAllExceptRemoves all objects except for those contained in another storage from the current storage

說明

public void SplObjectStorage::removeAllExcept ( SplObjectStorage $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.

回傳值

無回傳值。

範例

Example #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)

add a note add a note

User Contributed Notes 2 notes

up
0
kirk at wa dot net dot ua
12 years ago
You may remove all elements by passing empty SplObjectStorage

$splStorage->removeAllExcept(new SplObjectStorage());
up
-1
hizer at hizercache dot com
8 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.
To Top