php实现堆栈
堆栈的基本概念
堆栈是一种遵循后进先出(LIFO)原则的数据结构,仅允许在栈顶进行插入(压栈)和删除(弹栈)操作。PHP中可通过数组或SplStack类实现。
使用数组实现堆栈
PHP的数组原生支持堆栈操作,通过array_push()和array_pop()函数即可实现:
$stack = [];
// 压栈操作
array_push($stack, "A");
array_push($stack, "B");
// 弹栈操作
$top = array_pop($stack); // 返回"B"
使用SplStack类
PHP标准库(SPL)提供了SplStack类,专门用于堆栈操作:
$stack = new SplStack();
// 压栈操作
$stack->push("A");
$stack->push("B");
// 弹栈操作
$top = $stack->pop(); // 返回"B"
性能对比
- 数组实现:适合简单场景,但频繁扩容可能影响性能。
- SplStack:专门优化的数据结构,性能更稳定,支持迭代器等高级功能。
自定义堆栈类示例
如需扩展功能,可封装自定义类:

class CustomStack {
private $stack = [];
public function push($item) {
$this->stack[] = $item;
}
public function pop() {
return array_pop($this->stack);
}
public function peek() {
return end($this->stack);
}
public function isEmpty() {
return empty($this->stack);
}
}
注意事项
- 数组实现的堆栈需注意边界检查,空栈时调用
array_pop()会返回null。 SplStack继承自SplDoublyLinkedList,支持双向链表操作,但作为堆栈时应避免混用非栈操作。






