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

1.1     ! misho       1: <?php
        !             2: 
        !             3: /** @file splstack.inc
        !             4:  * @ingroup SPL
        !             5:  * @brief class SplStack
        !             6:  * @author  Etienne Kneuss
        !             7:  * @date    2008 - 2009
        !             8:  *
        !             9:  * SPL - Standard PHP Library
        !            10:  */
        !            11: 
        !            12: /** @ingroup SPL
        !            13:  * @brief Implementation of a stack through a DoublyLinkedList. As SplStack 
        !            14:  *        extends SplDoublyLinkedList, shift() and unshift() are still available even
        !            15:  *        though they don't make much sense for a stack.
        !            16:  * @since PHP 5.3
        !            17:  *
        !            18:  * The SplStack class provides the main functionalities of a
        !            19:  * stack implemented using a doubly linked list (DLL).
        !            20:  */
        !            21: class SplStack extends SplDoublyLinkedList
        !            22: {
        !            23:        protected $_it_mode = parent::IT_MODE_LIFO;
        !            24: 
        !            25:        /** Changes the iteration mode. There are two orthogonal sets of modes that 
        !            26:         * can be set:
        !            27:         *
        !            28:         * - The behavior of the iterator (either one or the other)
        !            29:         *  - SplDoublyLnkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
        !            30:         *  - SplDoublyLnkedList::IT_MODE_KEEP   (Elements are traversed by the iterator)
        !            31:         *
        !            32:         * The default mode is 0 : SplDoublyLnkedList::IT_MODE_LIFO | SplDoublyLnkedList::IT_MODE_KEEP
        !            33:         *
        !            34:         * @note The iteration's direction is not modifiable for stack instances
        !            35:         * @param $mode              New mode of iteration
        !            36:         * @throw RuntimeException   If the new mode affects the iteration's direction.
        !            37:         */
        !            38:        public function setIteratorMode($mode)
        !            39:        {
        !            40:                if ($mode & parent::IT_MODE_LIFO !== parent::IT_MODE_LIFO) {
        !            41:                        throw new RuntimeException("Iterators' LIFO/FIFO modes for SplStack/SplQueue objects are frozen");
        !            42:                }
        !            43: 
        !            44:                $this->_it_mode = $mode;
        !            45:        }
        !            46: }
        !            47: 
        !            48: ?>

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