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>