Annotation of embedaddon/php/ext/spl/internal/recursiveregexiterator.inc, revision 1.1

1.1     ! misho       1: <?php
        !             2: 
        !             3: /** @file recursiveregexiterator.inc
        !             4:  * @ingroup SPL
        !             5:  * @brief class RegexIterator
        !             6:  * @author  Marcus Boerger
        !             7:  * @date    2003 - 2009
        !             8:  *
        !             9:  * SPL - Standard PHP Library
        !            10:  */
        !            11: 
        !            12: /**
        !            13:  * @brief   Recursive regular expression filter for iterators
        !            14:  * @author  Marcus Boerger
        !            15:  * @version 1.0
        !            16:  * @since PHP 5.1
        !            17:  *
        !            18:  * This filter iterator assumes that the inner iterator 
        !            19:  */
        !            20: class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator
        !            21: {
        !            22:        /**
        !            23:         * Constructs a regular expression filter around an iterator whose 
        !            24:         * elemnts or keys are strings.
        !            25:         *
        !            26:         * @param it          inner iterator
        !            27:         * @param regex       the regular expression to match
        !            28:         * @param mode        operation mode (one of self::MATCH, self::GET_MATCH, 
        !            29:         *                    self::ALL_MATCHES, self::SPLIT)
        !            30:         * @param flags       special flags (self::USE_KEY)
        !            31:         * @param preg_flags  global PREG_* flags, see preg_match(), 
        !            32:         *                    preg_match_all(), preg_split()
        !            33:         */
        !            34:        function __construct(RecursiveIterator $it, $regex, $mode = 0, $flags = 0, $preg_flags = 0) {
        !            35:                parent::__construct($it, $regex, $mode, $flags, $preg_flags);
        !            36:        }
        !            37: 
        !            38:        /** @return whether the current element has children
        !            39:         */
        !            40:        function hasChildren()
        !            41:        {
        !            42:                return $this->getInnerIterator()->hasChildren();
        !            43:        }
        !            44: 
        !            45:        /** @return an iterator for the current elements children
        !            46:         *
        !            47:         * @note the returned iterator will be of the same class as $this
        !            48:         */
        !            49:        function getChildren()
        !            50:        {
        !            51:                if (empty($this->ref))
        !            52:                {
        !            53:                        $this->ref = new ReflectionClass($this);
        !            54:                }
        !            55:                return $this->ref->newInstance($this->getInnerIterator()->getChildren());
        !            56:        }
        !            57:        
        !            58:        private $ref;
        !            59: }
        !            60: 
        !            61: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>