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 ));
?> |
Output:
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 ));
?> |
Output:
int(2) int(1) int(1)
Reference: https://www.php.net/manual/en/splobjectstorage.removeallexcept.php