• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SplObjectStorage::removeAllExcept()

    (PHP 5 >= 5.3.6, PHP 7)

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

    说明

    publicSplObjectStorage::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());