SplQueueはキューが空のときにdequeue()されるとRuntimeExceptionを起こす。
PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Can't shift from an empty datastructure' in hoge.php
whileで全部のキューを取ろうとするとこれにハマる。
$q = new SplQueue();
$q->enqueue(1);
$q->enqueue(2);
while($item = $q->dequeue()){
echo $item . PHP_EOL;
}
// Fatal error: Uncaught exception 'RuntimeException' with message 'Can't shift from an empty datastructure'
キューが空になるまでdequeue()し続けたいときはcount()でキューの数をチェックすればよい。
$q = new SplQueue();
$q->enqueue(1);
$q->enqueue(2);
while($q->count() > 0){
$item = $q->dequeue();
echo $item . PHP_EOL;
}