The SplQueue class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

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.

Class synopsis

class SplQueue extends SplDoublyLinkedList {
/* Inherited constants */
/* Methods */
public dequeue(): mixed
public enqueue(mixed $value): void
/* Inherited methods */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
}

Examples

Example #1 SplQueue example

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

The above example will output:

1
2
3

Example #2 Efficiently handling tasks with SplQueue

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

Table of Contents