Annotation of embedaddon/php/ext/spl/examples/searchiterator.inc, revision 1.1

1.1     ! misho       1: <?php
        !             2: 
        !             3: /** @file searchiterator.inc
        !             4:  * @ingroup Examples
        !             5:  * @brief abstract class SearchIterator
        !             6:  * @author  Marcus Boerger
        !             7:  * @date    2003 - 2005
        !             8:  *
        !             9:  * SPL - Standard PHP Library
        !            10:  */
        !            11: 
        !            12: /** @ingroup Examples
        !            13:  * @brief Iterator to search for a specific element
        !            14:  * @author  Marcus Boerger
        !            15:  * @version 1.0
        !            16:  *
        !            17:  * This extended FilterIterator stops after finding the first acceptable
        !            18:  * value.
        !            19:  */
        !            20: abstract class SearchIterator extends FilterIterator
        !            21: {
        !            22:        /** @internal whether an entry was found already */
        !            23:        private $done = false;
        !            24: 
        !            25:        /** Rewind and reset so that it once again searches.
        !            26:         * @return void
        !            27:         */
        !            28:        function rewind()
        !            29:        {
        !            30:                parent::rewind();
        !            31:                $this->done = false;
        !            32:        }
        !            33: 
        !            34:        /** @return whether the current element is valid
        !            35:         * which can only happen once per iteration.
        !            36:         */
        !            37:        function valid()
        !            38:        {
        !            39:                return !$this->done && parent::valid();
        !            40:        }
        !            41:        
        !            42:        /** Do not move forward but instead mark as finished.
        !            43:         * @return void
        !            44:         */
        !            45:        function next()
        !            46:        {
        !            47:                $this->done = true;
        !            48:        }
        !            49: 
        !            50:        /** Aggregates the inner iterator
        !            51:         */     
        !            52:        function __call($func, $params)
        !            53:        {
        !            54:                return call_user_func_array(array($this->getInnerIterator(), $func), $params);
        !            55:        }
        !            56: }
        !            57: 
        !            58: ?>

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