函式名稱:SplDoublyLinkedList::setIteratorMode()
函式描述:設定迭代器的模式,用於控制遍歷SplDoublyLinkedList物件時的行為。
適用版本:PHP 5 >= 5.3.0, PHP 7
語法:public void SplDoublyLinkedList::setIteratorMode(int $mode)
引數:
- $mode:迭代器模式,可以是以下常量之一:
- SplDoublyLinkedList::IT_MODE_FIFO:按先進先出(FIFO)的順序遍歷,與佇列類似。
- SplDoublyLinkedList::IT_MODE_LIFO:按後進先出(LIFO)的順序遍歷,與棧類似。
- SplDoublyLinkedList::IT_MODE_DELETE:在遍歷過程中刪除元素。
- SplDoublyLinkedList::IT_MODE_KEEP:在遍歷過程中保留元素(預設模式)。
返回值:無返回值。
示例:
$queue = new SplDoublyLinkedList();
$queue->push('Apple');
$queue->push('Banana');
$queue->push('Cherry');
// 設定迭代器模式為FIFO(先進先出)
$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
// 遍歷佇列
foreach ($queue as $item) {
echo $item . "\n";
}
// 輸出:
// Apple
// Banana
// Cherry
// 設定迭代器模式為LIFO(後進先出)
$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_LIFO);
// 遍歷棧
foreach ($queue as $item) {
echo $item . "\n";
}
// 輸出:
// Cherry
// Banana
// Apple
// 設定迭代器模式為DELETE(遍歷過程中刪除元素)
$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_DELETE);
// 遍歷佇列並刪除元素
foreach ($queue as $item) {
echo $item . "\n";
}
// 輸出:
// Apple
// Banana
// Cherry
// 所有元素都被刪除
// 設定迭代器模式為KEEP(遍歷過程中保留元素)
$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_KEEP);
$queue->push('Durian');
$queue->push('Elderberry');
// 遍歷佇列並保留元素
foreach ($queue as $item) {
echo $item . "\n";
}
// 輸出:
// Durian
// Elderberry
以上示例演示了SplDoublyLinkedList::setIteratorMode()函式的用法。透過設定不同的迭代器模式,可以改變遍歷SplDoublyLinkedList物件時的行為。