Skip to content
Related Articles

Related Articles

PHP | SplDoublyLinkedList setIteratorMode() Function
  • Last Updated : 21 Nov, 2019

The SplDoublyLinkedList::setIteratorMode() function is an inbuilt function in PHP which is used to set the mode of iteration.

Syntax:

void SplDoublyLinkedList::setIteratorMode( int $mode )

Parameters: This function accepts single parameter $mode which holds two orthogonal sets of modes which are listed below:
The direction of the iteration are:

  • SplDoublyLinkedList::IT_MODE_LIFO (Stack style)
  • SplDoublyLinkedList::IT_MODE_FIFO (Queue style)

The behavior of the iterator are:

  • SplDoublyLinkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
  • SplDoublyLinkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

Return Value: This function does not return any value.



Below programs illustrate the SplDoublyLinkedList::setIteratorMode() function in PHP:
Program 1:




<?php
   
// Declare an empty SplDoublyLinkedList 
$list = new SplDoublyLinkedList();
   
// Add the element into SplDoublyLinkedList
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO); 
   
// Use getIteratorMode() function
$mode = $list->getIteratorMode();
var_dump($mode);
   
// Add the element into SplDoublyLinkedList
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_DELETE); 
   
// Use getIteratorMode() function
$mode = $list->getIteratorMode();
var_dump($mode);
   
// Add the element into SplDoublyLinkedList
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO); 
   
// Use getIteratorMode() function
$mode = $list->getIteratorMode();
var_dump($mode);
   
?>
Output:
int(0)
int(1)
int(2)

Program 2:




<?php
   
// Declare an empty SplDoublyLinkedList 
$list = new SplDoublyLinkedList();
   
// Add the element into SplDoublyLinkedList
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO
                    | SplDoublyLinkedList::IT_MODE_DELETE
                    | SplDoublyLinkedList::IT_MODE_LIFO); 
   
$mode = $list->getIteratorMode();
   
var_dump($mode & SplDoublyLinkedList::IT_MODE_FIFO);
                   
var_dump($mode & SplDoublyLinkedList::IT_MODE_LIFO);
                   
var_dump($mode & SplDoublyLinkedList::IT_MODE_DELETE);
                   
var_dump($mode & SplDoublyLinkedList::IT_MODE_KEEP); 
   
?>
Output:
int(0)
int(2)
int(1)
int(0)

Reference: https://www.php.net/manual/en/spldoublylinkedlist.setiteratormode.php

My Personal Notes arrow_drop_up
Recommended Articles
Page :