php的SPL提供了些数据结构基本类型的实现,虽然我们可以使用传统的变量类型来描述数据结构,例如用数组来描述堆栈(Strack)然后使用对应的方式 pop 和 push(array_pop()、array_push()),但你得时刻小心,因为毕竟它们不是专门用于描述数据结构的,一次误操作就有可能破坏该堆栈。而SPL的 SplStack 对象则严格以堆栈的形式描述数据,并提供对应的方法。同时,这样的代码应该也能理解它在操作堆栈而非某个数组,从而能让你的同伴更好的理解相应的代码,并且它更快。
栈的实现
$stack =<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码$网!</span><strong>搞代gaodaima码</strong> new SplStack(); //入栈$stack->push('a');$stack->push('b');//出栈echo $stack->pop();echo $stack->pop();
队列的实现
$queue = new SplQueue();//入队列$queue->enqueue('a');$queue->enqueue('b');$queue->enqueue('c');//出队列echo $queue->dequeue();echo $queue->dequeue(); echo $queue->dequeue();
最小堆的实现
$heap = new SplMinHeap();//插入到堆$heap->insert('a'); $heap->insert('b');//从堆中提取数据echo $heap->extract();echo $heap->extract();
固定长度的数组
$array = new SplFixedArray(5);$array[1] = 5;var_dump($array);