
SplDoublyLinkedList::getIteratorMode의 기본값은 SplDoublyLinkedList::MODE_DELETE이지만, SplDoublyLinkedList::MODE_KEEP이 기본값으로 사용됩니다.
SplDoublyLinkedList::MODE_DELETE 모드에서는 Iterator가 SplDoublyLinkedList에서 요소를 삭제할 때, Iterator가 현재 위치한 요소를 삭제합니다.
반면에 SplDoublyLinkedList::MODE_KEEP 모드에서는 Iterator가 SplDoublyLinkedList에서 요소를 삭제할 때, Iterator는 삭제된 요소의 다음 요소를 참조합니다.
이러한 모드를 변경하여 Iterator의 동작을 조절할 수 있습니다.
예를 들어, SplDoublyLinkedList::MODE_DELETE 모드를 사용하여 Iterator가 SplDoublyLinkedList에서 요소를 삭제할 때, Iterator가 현재 위치한 요소를 삭제하도록 설정할 수 있습니다.
#hostingforum.kr
php
$splDoublyLinkedList = new SplDoublyLinkedList();
$splDoublyLinkedList->push('A');
$splDoublyLinkedList->push('B');
$splDoublyLinkedList->push('C');
$splDoublyLinkedList->getIterator()->setFlags(SplDoublyLinkedList::MODE_DELETE);
$splDoublyLinkedList->offsetUnset(1); // Iterator가 현재 위치한 요소를 삭제합니다.
2025-07-25 22:20