PHP Conference Japan 2024

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 則註記

hizer at hizercache dot com
8 年前
Kirk 提供的範例並不是最佳選項,有一個方法 "removeAll" 可以傳入 SplObjectStore 本身,顧名思義,它會移除所有儲存的物件。
kirk at wa dot net dot ua
13 年前
您可以透過傳入空的 SplObjectStorage 來移除所有元素

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