📜  PHP | SplDoublyLinkedList setIteratorMode()函数

📅  最后修改于: 2022-05-13 01:56:21.757000             🧑  作者: Mango

PHP | SplDoublyLinkedList setIteratorMode()函数

SplDoublyLinkedList::setIteratorMode()函数是PHP中的一个内置函数,用于设置迭代模式。

句法:

void SplDoublyLinkedList::setIteratorMode( int $mode )

参数:此函数接受单个参数$mode ,它包含下面列出的两组正交模式:
迭代的方向是:

  • SplDoublyLinkedList::IT_MODE_LIFO(堆栈样式)
  • SplDoublyLinkedList::IT_MODE_FIFO(队列样式)

迭代器的行为是:

  • SplDoublyLinkedList::IT_MODE_DELETE(元素被迭代器删除)
  • SplDoublyLinkedList::IT_MODE_KEEP(元素被迭代器遍历)

返回值:此函数不返回任何值。

下面的程序说明了PHP中的 SplDoublyLinkedList::setIteratorMode()函数:
方案一:

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);
   
?>
输出:
int(0)
int(1)
int(2)

方案二:

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); 
   
?>
输出:
int(0)
int(2)
int(1)
int(0)

参考: https://www. PHP.net/manual/en/spldoublylinkedlist.setiteratormode。 PHP