Collections with SPL
SPL Queue
SplQueue removes items in the same order they were added.
first in first out
Queue operations model work that should be handled from oldest to newest.
SPL Queue
spl_queue.php
Replay: real traced execution (multi-file project)
<?php
$first = "build";
$queue = new SplQueue();
$queue->enqueue($first);
$queue->enqueue("review");
$served = $queue->dequeue();
$remaining = $queue->count();
echo "first=" . $first . "\n";
echo "served=" . $served . "\n";
echo "remaining=" . $remaining . "\n";
<?php
$first = "plan";
$queue = new SplQueue();
$queue->enqueue($first);
$queue->enqueue("review");
$served = $queue->dequeue();
$remaining = $queue->count();
echo "first=" . $first . "\n";
echo "served=" . $served . "\n";
echo "remaining=" . $remaining . "\n";
<?php
$first = "ship";
$queue = new SplQueue();
$queue->enqueue($first);
$queue->enqueue("review");
$served = $queue->dequeue();
$remaining = $queue->count();
echo "first=" . $first . "\n";
echo "served=" . $served . "\n";
echo "remaining=" . $remaining . "\n";
$first ← build, $queue ← SplQueue, $served ← build, $remaining ← 1
1<?php2$first→ build = "build"; //@first="plan", "ship"3$queue→ SplQueue = new SplQueue();4$queueSplQueue->enqueue($firstbuild);5$queueSplQueue->enqueue("review");6$served→ build = $queueSplQueue->dequeue();7$remaining→ 1 = $queueSplQueue->count();89echo "first=" . $firstbuild . "\n";10echo "served=" . $servedbuild . "\n";11echo "remaining=" . $remaining1 . "\n";outputfirst=build served=build remaining=1
$first ← plan, $queue ← SplQueue, $served ← plan, $remaining ← 1
1<?php2$first→ plan = "plan";3$queue→ SplQueue = new SplQueue();4$queueSplQueue->enqueue($firstplan);5$queueSplQueue->enqueue("review");6$served→ plan = $queueSplQueue->dequeue();7$remaining→ 1 = $queueSplQueue->count();89echo "first=" . $firstplan . "\n";10echo "served=" . $servedplan . "\n";11echo "remaining=" . $remaining1 . "\n";outputfirst=plan served=plan remaining=1
$first ← ship, $queue ← SplQueue, $served ← ship, $remaining ← 1
1<?php2$first→ ship = "ship";3$queue→ SplQueue = new SplQueue();4$queueSplQueue->enqueue($firstship);5$queueSplQueue->enqueue("review");6$served→ ship = $queueSplQueue->dequeue();7$remaining→ 1 = $queueSplQueue->count();89echo "first=" . $firstship . "\n";10echo "served=" . $servedship . "\n";11echo "remaining=" . $remaining1 . "\n";outputfirst=ship served=ship remaining=1