php的spl提供了些数据结构基本类型的实现,虽然我们可以使用传统的变量类型来描述数据结构,例如用数组来描述堆栈(strack)然后使用对应的方式 pop 和 push(array_pop()、array_push()),但你得时刻小心,因为毕竟它们不是专门用于描述数据结构的,一次误操作就有可能破坏该堆栈。而spl的 splstack 对象则严格以堆栈的形式描述数据,并提供对应的方法。同时,这样的代码应该也能理解它在操作堆栈而非某个数组,从而能让你的同伴更好的理解相应的代码,并且它更快。
栈的实现
$stack = 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);
