SplQueue クラス

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

はじめに

SplQueue クラスは、キューの主要な機能を提供します。 双方向リンクリストのイテレータのモードを SplDoublyLinkedList::IT_MODE_FIFO に設定することで実装しています。

クラス概要

class SplQueue extends SplDoublyLinkedList {
/* 継承した定数 */
/* メソッド */
public dequeue(): mixed
public enqueue(mixed $value): void
/* 継承したメソッド */
public SplDoublyLinkedList::add(int $index, mixed $value): void
}

例1 SplQueue の例

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

上の例の出力は以下となります。

1
2
3

例2 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;
    // ...
}
?>

目次