SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SplObjectStorage::removeAllExcept从当前存储中移除所有对象,除了另一个存储中包含的对象

描述

public SplObjectStorage::removeAllExcept(SplObjectStorage $storage): int

从当前存储中移除所有对象,除了另一个存储中包含的对象。

参数

storage

包含要保留在当前存储中的元素的存储。

返回值

返回剩余对象的数目。

示例

示例 #1 SplObjectStorage::removeAllExcept() 示例

<?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)

添加注释

用户贡献的注释 2 个注释

0
hizer at hizercache dot com
8 年前
Kirk 提供的示例不是最佳选择,有一个名为 "removeAll" 的方法,可以将 SplObjectStore 本身传递给它,顾名思义,它将移除所有存储的对象。
0
kirk at wa dot net dot ua
13 年前
您可以通过传递一个空的 SplObjectStorage 来移除所有元素

$splStorage->removeAllExcept(new SplObjectStorage());
To Top