CakeFest 2024: The Official CakePHP Conference

SplObjectStorage::removeAllExcept

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

SplObjectStorage::removeAllExceptSupprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

Description

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

Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages.

Liste de paramètres

storage

Le stockage contenant les éléments à ne pas supprimer du stockage courant.

Valeurs de retour

Retourne le nombre d'objets restants.

Exemples

Exemple #1 Exemple avec 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)

add a note

User Contributed Notes 2 notes

up
0
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.
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());
To Top