helly           Thu Oct 13 15:49:32 2005 EDT

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/spl/examples   recursivetreeiterator.inc 
  Log:
  - MFH Add ability to bypass key() surrounding and make that default
  
http://cvs.php.net/diff.php/php-src/ext/spl/examples/recursivetreeiterator.inc?r1=1.1.2.5&r2=1.1.2.6&ty=u
Index: php-src/ext/spl/examples/recursivetreeiterator.inc
diff -u php-src/ext/spl/examples/recursivetreeiterator.inc:1.1.2.5 
php-src/ext/spl/examples/recursivetreeiterator.inc:1.1.2.6
--- php-src/ext/spl/examples/recursivetreeiterator.inc:1.1.2.5  Sat Oct  8 
15:09:58 2005
+++ php-src/ext/spl/examples/recursivetreeiterator.inc  Thu Oct 13 15:49:27 2005
@@ -19,8 +19,8 @@
 class RecursiveTreeIterator extends RecursiveIteratorIterator
 {
        const BYPASS_CURRENT = 0x00000004;
+       const BYPASS_KEY     = 0x00000008;
 
-       private $callToString;
        private $rit_flags;
 
        /**
@@ -29,11 +29,10 @@
         * @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;
-               $this->callToString = (bool)($cit_flags & 
CachingIterator::CALL_TOSTRING);
        }
 
        /**  Prefix strings used in getPrefix()
@@ -65,7 +64,7 @@
         */
        function getEntry()
        {
-               return $this->callToString ? $this->__toString() : 
parent::current();
+               return @(string)parent::current();
        }
 
        /** @return string to place after the current element
@@ -78,14 +77,14 @@
        /** @return the current element prefixed and postfixed
         */
        function current()
-       {               
+       {
                if ($this->rit_flags & self::BYPASS_CURRENT)
                {
                        return parent::current();
                }
                else
                {
-               return $this->getPrefix() . $this->getEntry() .  
$this->getPostfix();
+                       return $this->getPrefix() . $this->getEntry() .  
$this->getPostfix();
                }
        }
 
@@ -93,7 +92,14 @@
         */
        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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to