getLHS()->hasChildren() && $this->getRHS()->hasChildren(); } /** @return new RecursiveDualIterator (late binding) for the two inner * iterators current children. */ function getChildren() { if (empty($this->ref)) { $this->ref = new ReflectionClass($this); } return $this->ref->newInstance( $this->getLHS()->getChildren(), $this->getRHS()->getChildren(), $this->getFlags()); } /** @return whether both inner iterators are valid, have same hasChildren() * state and identical current and key values or both are non valid. */ function areIdentical() { return $this->getLHS()->hasChildren() === $this->getRHS()->hasChildren() && parent::areIdentical(); } /** @return whether both inner iterators are valid, have same hasChildren() * state and equal current and key values or both are invalid. */ function areEqual() { return $this->getLHS()->hasChildren() === $this->getRHS()->hasChildren() && parent::areEqual(); } } ?>