查詢

SplDoublyLinkedList::setIteratorMode()函式—用法及示例

「 設定迭代器的模式,用於控制遍歷SplDoublyLinkedList物件時的行為 」


函式名稱: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物件時的行為。

補充糾錯
熱門PHP函式
分享連結