PHP SPL迭代模式
mode
有模式的两个正交组可以设置:
1.迭代的方向
SplDoublyLinkedList::IT_MODE_LIFO(堆叠型)
SplDoublyLinkedList::IT_MODE_FIFO(队列分格)
2.迭代器的行为
SplDoublyLinkedList::IT_MODE_DELETE(迭代删除)
SplDoublyLinkedList::IT_MODE_KEEP(迭代遍历)
默认的模式为:SplDoublyLinkedList::IT_MODE_FIFO|SplDoublyLinkedList::IT_MODE_KEEP;
在迭代的方向中,堆叠性的方向是从链表的top到bottom(后进先出),而队列风格则相反(先进先出)。
在迭代的行为中,迭代删除会将链表中的元素迭代删除,而迭代遍历仅会将链表中的元素遍历一遍。
行为和方向两两组合形成了四种迭代模式
1.SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_DELETE 堆叠型迭代删除
2.SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE 队列型迭代删除
3.SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP 堆叠性迭代遍历
4.SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP 队列型迭代遍历