SplObjectStorage::removeAllExcept

Removes all objects except for those contained in another storage from the current storage

&reftitle.description; public `int` `SplObjectStorage::removeAllExcept` `SplObjectStorage` `storage`

Removes all objects except for those contained in another storage from the current storage.

&reftitle.parameters;

`storage`

- The storage containing the elements to retain in the current storage.

&reftitle.returnvalues;

Returns the number of remaining objects.

&reftitle.examples;

### `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));
    ?>

&example.outputs.similar;

    bool(false)
    bool(true)