summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-10-13 19:45:29 +0000
committerMarcus Boerger <helly@php.net>2005-10-13 19:45:29 +0000
commit533b61cf3b700a63f638b9618f06c39d83664959 (patch)
tree5507935c0b2be918acf641ff485f6b035607c8ce
parent40af0645b9098776df13dc8594a982a3d335226e (diff)
downloadphp-git-533b61cf3b700a63f638b9618f06c39d83664959.tar.gz
- Add ability to bypass key() surrounding and make that default
-rwxr-xr-xext/spl/examples/recursivetreeiterator.inc12
1 files changed, 10 insertions, 2 deletions
diff --git a/ext/spl/examples/recursivetreeiterator.inc b/ext/spl/examples/recursivetreeiterator.inc
index 2d2210e704..42d217fa76 100755
--- a/ext/spl/examples/recursivetreeiterator.inc
+++ b/ext/spl/examples/recursivetreeiterator.inc
@@ -19,6 +19,7 @@
class RecursiveTreeIterator extends RecursiveIteratorIterator
{
const BYPASS_CURRENT = 0x00000004;
+ const BYPASS_KEY = 0x00000008;
private $rit_flags;
@@ -28,7 +29,7 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator
* @param cit_flags flags passed to RecursiveCachingIterator (for hasNext)
* @param mode mode passed to RecursiveIteratoIterator (parent)
*/
- function __construct(RecursiveIterator $it, $rit_flags = 0, $cit_flags = CachingIterator::CATCH_GET_CHILD, $mode = self::SELF_FIRST)
+ function __construct(RecursiveIterator $it, $rit_flags = self::BYPASS_KEY, $cit_flags = CachingIterator::CATCH_GET_CHILD, $mode = self::SELF_FIRST)
{
parent::__construct(new RecursiveCachingIterator($it, $cit_flags), $mode, $rit_flags);
$this->rit_flags = $rit_flags;
@@ -91,7 +92,14 @@ class RecursiveTreeIterator extends RecursiveIteratorIterator
*/
function key()
{
- return $this->getPrefix() . parent::key() . $this->getPostfix();
+ if ($this->rit_flags & self::BYPASS_KEY)
+ {
+ return parent::key();
+ }
+ else
+ {
+ return $this->getPrefix() . parent::key() . $this->getPostfix();
+ }
}
/** Aggregates the inner iterator