SPL Data Structures
5 min read
The SPL provides ready-made data structures like SplStack, SplQueue, and SplMinHeap. These are more efficient than plain arrays for specific access patterns like LIFO and FIFO operations.
SPL Data Structures
// SplStack (LIFO)
$stack = new SplStack();
$stack->push("a");
$stack->push("b");
$stack->push("c");
echo $stack->top(); // c
$stack->pop(); // removes c
// SplQueue (FIFO)
$queue = new SplQueue();
$queue->enqueue("task1");
$queue->enqueue("task2");
echo $queue->dequeue(); // task1
// SplMinHeap (priority queue)
$heap = new SplMinHeap();
$heap->insert(5);
$heap->insert(1);
$heap->insert(3);
echo $heap->extract(); // 1 (smallest)
// SplDoublyLinkedList
// SplFixedArray — faster than arrays for known size
$arr = new SplFixedArray(1000000);
$arr[0] = "fast";