(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Introduction
La classe SplQueue fournit l'interface d'implémentation d'une
queue, basée sur une liste doublement chaînée en définissant le mode de l'itérateur à
SplDoublyLinkedList::IT_MODE_FIFO
.
Synopsis de la classe
class
SplQueue
extends
SplDoublyLinkedList
{
/* Constants héritées */
public
const
int
SplDoublyLinkedList::IT_MODE_LIFO;
public
const
int
SplDoublyLinkedList::IT_MODE_FIFO;
public
const
int
SplDoublyLinkedList::IT_MODE_DELETE;
public
const
int
SplDoublyLinkedList::IT_MODE_KEEP;
/* Méthodes */
public
dequeue(): mixed
public enqueue(mixed
$value
): void
/* Méthodes héritées */
public SplDoublyLinkedList::add(int
$index
, mixed
$value
): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int
$index
): bool
public SplDoublyLinkedList::offsetGet(int
$index
): mixed
public SplDoublyLinkedList::offsetSet(?int
$index
, mixed
$value
): void
public SplDoublyLinkedList::offsetUnset(int
$index
): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed
$value
): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int
$mode
): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string
$data
): void
public SplDoublyLinkedList::unshift(mixed
$value
): void
public SplDoublyLinkedList::valid(): bool
}
Exemples
Exemple #1 Exemple de SplQueue
<?php
$q = new SplQueue();
$q[] = 1;
$q[] = 2;
$q[] = 3;
foreach ($q as $elem) {
echo $elem."\n";
}
?>
L'exemple ci-dessus va afficher :
1
2
3
Exemple #2 Traiter efficacement les tâches avec SplQueue
<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);
// ... mettre dans la file d'attente certaines tâches ...
// les traiter
foreach ($q as $task) {
// ... traiter $task ...
// ajouter des nouvelles tâches dans la file d'attente
$q[] = $newTask;
// ...
}
?>
Sommaire
- SplQueue::dequeue — Supprime un nœud de la file d'attente
- SplQueue::enqueue — Ajoute un élément à la file d'attente