You are here

public function PHPExcel_Worksheet_AutoFilter::__clone in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php \PHPExcel_Worksheet_AutoFilter::__clone()

* Implement PHP __clone to create a deep clone, not just a shallow copy.

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/AutoFilter.php, line 830

Class

PHPExcel_Worksheet_AutoFilter
PHPExcel_Worksheet_AutoFilter

Code

public function __clone() {
  $vars = get_object_vars($this);
  foreach ($vars as $key => $value) {
    if (is_object($value)) {
      if ($key == '_workSheet') {

        //	Detach from worksheet
        $this->{$key} = NULL;
      }
      else {
        $this->{$key} = clone $value;
      }
    }
    elseif (is_array($value) && $key == '_columns') {

      //	The columns array of PHPExcel_Worksheet_AutoFilter objects
      $this->{$key} = array();
      foreach ($value as $k => $v) {
        $this->{$key}[$k] = clone $v;

        // attach the new cloned Column to this new cloned Autofilter object
        $this->{$key}[$k]
          ->setParent($this);
      }
    }
    else {
      $this->{$key} = $value;
    }
  }
}