La función SplObjectStorage::removeAllExcept() es una función incorporada en PHP que se utiliza para eliminar todos los objetos del almacenamiento, excepto los que contiene otro almacenamiento.
Sintaxis:
int SplObjectStorage::removeAllExcept()
Parámetros: esta función acepta un único parámetro $obj que especifica el almacenamiento de objetos que se va a conservar.
Valor devuelto: esta función no devuelve ningún valor.
Los siguientes programas ilustran la función SplObjectStorage::removeAllExcept() en PHP:
Programa 1:
<?php $obj1 = new StdClass; $obj2 = new StdClass; $obj3 = new StdClass; $gfg1 = new SplObjectStorage(); $gfg1[$obj1] = "Geeks"; $gfg2 = new SplObjectStorage(); $gfg2[$obj1] = "GFG"; $gfg2[$obj2] = "GeeksClasses"; $gfg2[$obj3] = "SUDO"; // Count all existing objects var_dump(count($gfg2)); // Remove all objects of $gfg2 from $gfg2 $gfg2->removeAllExcept($gfg1); // Print result after removeAll var_dump(count($gfg2)); ?>
Producción:
int(3) int(1)
Programa 2:
<?php $obj1 = new StdClass; $obj2 = new StdClass; $gfg1 = new SplObjectStorage(); $gfg1[$obj1] = "Geeks"; $gfg2 = new SplObjectStorage(); $gfg2[$obj1] = "GFG"; $gfg2[$obj2] = "GeeksClasses"; // Count and print all existing objects var_dump(count($gfg2)); // Remove all objects of $gfg1 from $gfg2 $gfg2->removeAllExcept($gfg1); // Print result var_dump(count($gfg2)); // Result remains same $gfg2->removeAllExcept($gfg2); // Print result var_dump(count($gfg2)); ?>
Producción:
int(2) int(1) int(1)
Referencia: https://www.php.net/manual/en/splobjectstorage.removeallexcept.php