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