function _fetch($check) { $valid = parent::_fetch($check); if (!$check || $valid) { $iterator = $this->getInnerIterator(); if ($this->hasChildren = $iterator->hasChildren()) { $this->getChildren = new RecursiveCachingIterator($iterator->getChildren(), $this->getFlags()); } else { $this->getChildren = NULL; } } return $valid; }