A classe SplQueue

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

Introdução

A classe SplQueue fornece as principais funcionalidades de uma fila implementada usando uma lista duplamente encadeada, estabelecendo o modo do iterador como SplDoublyLinkedList::IT_MODE_FIFO.

Resumo da classe

class SplQueue extends SplDoublyLinkedList {
/* Constantes herdadas */
/* Métodos */
public function dequeue(): mixed
public function enqueue(mixed $value): void
/* Métodos herdados */
public function SplDoublyLinkedList::add(int $index, mixed $value): void
public function SplDoublyLinkedList::count(): int
public function SplDoublyLinkedList::key(): int
public function SplDoublyLinkedList::next(): void
public function SplDoublyLinkedList::offsetExists(int $index): bool
public function SplDoublyLinkedList::offsetGet(int $index): mixed
public function SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public function SplDoublyLinkedList::offsetUnset(int $index): void
public function SplDoublyLinkedList::pop(): mixed
public function SplDoublyLinkedList::prev(): void
public function SplDoublyLinkedList::push(mixed $value): void
public function SplDoublyLinkedList::top(): mixed
public function SplDoublyLinkedList::unshift(mixed $value): void
public function SplDoublyLinkedList::valid(): bool
}

Exemplos

Exemplo #1 Exemplo de SplQueue

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

O exemplo acima produzirá:

1
2
3

Exemplo #2 Gestão eficiente de tarefas usando SplQueue

<?php
$q
= new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);
// ... adicionar algumas tarefas à fila ...
// processá-las.
foreach ($q as $task) {
// ... processar a tarefa $task ...
// adicionar novas tarefas à fila
$q[] = $newTask;
// ...
}
?>

Índice