阐明:该文章是用数组来实现栈,所以会继承数组的逻辑操作(数组的逻辑操作在上文有提到 https://segmentfault.com/a/11...)

1. 实现逻辑

<?php/** * content: 数组栈的实现 * create: 2020-10-20 */namespace StackBundle;use ArrayBundleBaseArray;class BaseArrayStack extends BaseArray{    /**    * 弹出栈顶元素    * @return mixed    */    public function pop()    {         return $this->del($this->size - 1);    }        /**    * 从栈顶插入元素    * @param mixed $value    */    public function push($value): void    {        $this->addLast($value);    }        /**     * 敞开从栈头插入元素的办法     * @param mixed $value     */    public function addFirst($value): void    {        exit('插入谬误!栈构造无奈在最后面插入数据,只能从尾部插入');    }}

2. 执行逻辑

<?phprequire_once __DIR__. '/../vendor/autoload.php';$stack = new StackBundleBaseArrayStack(1);// 从栈的顶部插入5个元素$stack->push('a');$stack->push('b');$stack->push('c');$stack->push('d');$stack->push('e');// 从栈的顶部弹出4个元素echo $stack->pop(). PHP_EOL;echo $stack->pop(). PHP_EOL;echo $stack->pop(). PHP_EOL;echo $stack->pop(). PHP_EOL;echo $stack;

3. 打印后果

edcbArray: size = 1, capacity = 1[a]