PHP SplObjectStorage removeAllExcept() Function

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] = "Beginner";
  
$gfg2 = new SplObjectStorage();
$gfg2[$obj1] = "GFG";
$gfg2[$obj2] = "BeginnerClasses";
$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] = "Beginner";
  
$gfg2 = new SplObjectStorage();
$gfg2[$obj1] = "GFG";
$gfg2[$obj2] = "BeginnerClasses";
  
// 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



Contact Us