# The SplQueue class

&reftitle.intro;

The SplQueue class provides the main functionalities of a queue implemented using a doubly linked list by setting the iterator mode to `SplDoublyLinkedList::IT_MODE_FIFO`.

&reftitle.classsynopsis;

         SplQueue

         extends
         SplDoublyLinkedList

        &InheritedConstants;

        &Methods;

        &InheritedMethods;

&reftitle.examples;

### `SplQueue` example

    <?php
    $q = new SplQueue();
    $q[] = 1;
    $q[] = 2;
    $q[] = 3;
    foreach ($q as $elem)  {
     echo $elem."\n";
    }
    ?>

&example.outputs;

    1
    2
    3

### Efficiently handling tasks with `SplQueue`

    <?php
    $q = new SplQueue();
    $q->setIteratorMode(SplQueue::IT_MODE_DELETE);
    // ... enqueue some tasks on the queue ...
    // process them
    foreach ($q as $task) {
        // ... process $task ...
        // add new tasks on the queue
        $q[] = $newTask;
        // ...
    }
    ?>

&reference.spl.entities.splqueue;