The SplObjectStorage::removeAllExcept() function is an inbuilt function in PHP which is used to remove all objects from storage except for those contains by another storage.
Syntax:
int SplObjectStorage::removeAllExcept()
Parameters: This function accepts a single parameter $obj which specify object storage to be retain.
Return Value: This function does not return any value.
Below programs illustrate the SplObjectStorage::removeAllExcept() function in PHP:
Program 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 )); ?> |
int(3) int(1)
Program 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 ));   ?> |
int(2) int(1) int(1)
Reference: https://www.php.net/manual/en/splobjectstorage.removeallexcept.php