cvs: php-src /ext/spl/examples dualiterator.inc recursivecomparedualiterator.inc recursivedualiterator.inc /ext/spl/examples/tests
dualiterator_001.phpt

From: Date: Sun, 10 Dec 2006 23:44:35 +0000
Subject: cvs: php-src /ext/spl/examples dualiterator.inc recursivecomparedualiterator.inc recursivedualiterator.inc /ext/spl/examples/tests
dualiterator_001.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-42045@lists.php.net to get a copy of this message
helly Sun Dec 10 23:44:35 2006 UTC Added files: /php-src/ext/spl/examples recursivecomparedualiterator.inc Modified files: /php-src/ext/spl/examples dualiterator.inc recursivedualiterator.inc /php-src/ext/spl/examples/tests dualiterator_001.phpt Log: - Fix comparison of RecursiveDualIterators http://cvs.php.net/viewvc.cgi/php-src/ext/spl/examples/dualiterator.inc?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/spl/examples/dualiterator.inc diff -u php-src/ext/spl/examples/dualiterator.inc:1.3 php-src/ext/spl/examples/dualiterator.inc:1.4 --- php-src/ext/spl/examples/dualiterator.inc:1.3 Fri Dec 1 09:28:38 2006 +++ php-src/ext/spl/examples/dualiterator.inc Sun Dec 10 23:44:35 2006 @@ -12,7 +12,7 @@ /** @ingroup Examples * @brief Synchronous iteration over two iterators * @author Marcus Boerger - * @version 1.2 + * @version 1.3 */ class DualIterator implements Iterator { @@ -174,7 +174,7 @@ { $it = new RecursiveDualIterator($lhs, $rhs, self::CURRENT_0 | self::KEY_0); - $it = new RecursiveIteratorIterator($it); + $it = new RecursiveCompareDualIterator($it); } else { http://cvs.php.net/viewvc.cgi/php-src/ext/spl/examples/recursivedualiterator.inc?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/spl/examples/recursivedualiterator.inc diff -u php-src/ext/spl/examples/recursivedualiterator.inc:1.2 php-src/ext/spl/examples/recursivedualiterator.inc:1.3 --- php-src/ext/spl/examples/recursivedualiterator.inc:1.2 Thu May 25 18:15:03 2006 +++ php-src/ext/spl/examples/recursivedualiterator.inc Sun Dec 10 23:44:35 2006 @@ -18,7 +18,7 @@ { private $ref; - /** construct iterator from two iterators + /** construct iterator from two RecursiveIterator instances * * @param lhs Left Hand Side Iterator * @param rhs Right Hand Side Iterator http://cvs.php.net/viewvc.cgi/php-src/ext/spl/examples/tests/dualiterator_001.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/spl/examples/tests/dualiterator_001.phpt diff -u php-src/ext/spl/examples/tests/dualiterator_001.phpt:1.2 php-src/ext/spl/examples/tests/dualiterator_001.phpt:1.3 --- php-src/ext/spl/examples/tests/dualiterator_001.phpt:1.2 Thu May 25 18:15:04 2006 +++ php-src/ext/spl/examples/tests/dualiterator_001.phpt Sun Dec 10 23:44:35 2006 @@ -33,6 +33,7 @@ ?> ===DONE=== +<?php exit(0); ?> --EXPECT-- bool(true) bool(false) http://cvs.php.net/viewvc.cgi/php-src/ext/spl/examples/recursivecomparedualiterator.inc?view=markup&rev=1.1 Index: php-src/ext/spl/examples/recursivecomparedualiterator.inc +++ php-src/ext/spl/examples/recursivecomparedualiterator.inc <?php /** @file recursivecomparedualiterator.inc * @ingroup Examples * @brief class DualIterator * @author Marcus Boerger * @date 2003 - 2006 * * SPL - Standard PHP Library */ /** @ingroup Examples * @brief Recursive comparison iterator for a RecursiveDualIterator * @author Marcus Boerger * @version 1.0 */ class RecursiveCompareDualIterator extends RecursiveIteratorIterator { /** Used to keep end of recursion equality. That is en leaving a nesting * level we need to check whether both child iterators are at their end. */ protected $equal = false; /** Construct from RecursiveDualIterator * * @param $it RecursiveDualIterator * @param $mode should be LEAVES_ONLY * @param $flags should be 0 */ function __construct(RecursiveDualIterator $it, $mode = self::LEAVES_ONLY, $flags = 0) { parent::__construct($it); } /** Rewind iteration andcomparison process. Starting with $equal = true. */ function rewind() { $this->equal = true; parent::rewind(); } /** Calculate $equal * @see $equal */ function endChildren() { $this->equal &= !$this->getInnerIterator()->getLHS()->valid() && !$this->getInnerIterator()->getRHS()->valid(); } /** @return whether both inner iterators are valid and have identical * current and key values or both are non valid. */ function areIdentical() { return $this->equal && $this->getInnerIterator()->areIdentical(); } /** @return whether both inner iterators are valid and have equal current * and key values or both are non valid. */ function areEqual() { return $this->equal && $this->getInnerIterator()->areEqual(); } } ?>

« previous php.cvs (#42045) next »