1
<?php
    
    class Stack {

        private $_data=array();

        private $_end=null;


        public function push($data){

            if($this->_end===null){
                $this->_end=0;
            }else{
                $this->_end++;
            }

            $this->_data[$this->_end]=$data;
        }


        public function pop(){
            if(!is_array($this->_data)||empty($this->_data)){
                return false;
            }

            $ret=$this->_data[$this->_end];

            // 删除最后一个元素,因为已经pop,并使得最后索引向前移动一位
            $popData=array_splice($this->_data, $this->_end);
            $this->_end--;

            return empty($popData)?null:$popData[0];

        }

        public function getData(){
            var_dump($this->_data);
        }
    }

    $demo= new Stack();
    $demo ->push('i');
    $demo ->push('am');
    $demo ->push('tb');
    echo $demo->pop('tb');
    echo $demo->pop('am');
    var_dump( $demo->pop('i'));
    var_dump($demo->pop('i'));

    $demo->getData();

结果:

tb
am
string(1) "i"
bool(false)

array(0) {
}

牙小木木
1.5k 声望80 粉丝

iamtb.cn