88 return $this->lhs->valid() && $this->rhs->valid();
95 switch($this->flags & 0x0F)
98 case self::CURRENT_ARRAY:
99 return array($this->lhs->current(), $this->rhs->current());
100 case self::CURRENT_LHS:
101 return $this->lhs->current();
102 case self::CURRENT_RHS:
103 return $this->rhs->current();
104 case self::CURRENT_0:
113 switch($this->flags & 0xF0)
117 return $this->lhs->key();
119 return $this->rhs->key();
138 return $this->
valid()
139 ? $this->lhs->current() === $this->rhs->current()
140 && $this->lhs->key() === $this->rhs->key()
141 : $this->lhs->valid() == $this->rhs->valid();
149 return $this->
valid()
150 ? $this->lhs->current() == $this->rhs->current()
151 && $this->lhs->key() == $this->rhs->key()
152 : $this->lhs->valid() == $this->rhs->valid();
170 if ($rhs instanceof RecursiveIterator)
173 self::CURRENT_0 | self::KEY_0);
190 if (!
$it->areIdentical())
200 if (!
$it->areEqual())
206 return $identical ?
$it->areIdentical() :
$it->areEqual();
__construct(Iterator $lhs, Iterator $rhs, $flags=0x13)
construct iterator from two iterators
Recursive comparison iterator for a RecursiveDualIterator.
Interface for recursive iteration with RecursiveIteratorIterator.
rewind()
rewind both inner iterators
Synchronous iteration over two recursive iterators.
static compareIterators(Iterator $lhs, Iterator $rhs, $identical=false)
Compare two iterators.
next()
move both inner iterators forward
Synchronous iteration over two iterators.