• thinkphp5中extend的使用?


    1.创建处理数组的类ArrayList.php

    <?php
    
    /**
     * ArrayList实现类
     * @author    liu21st <liu21st@gmail.com>
     */
    class ArrayList implements IteratorAggregate
    {
        /**
         * 集合元素
         * @var array
         * @access protected
         */
        protected $elements = [];
    
        /**
         * 架构函数
         * @access public
         * @param string $elements  初始化数组元素
         */
        public function __construct($elements = [])
        {
            if (!empty($elements)) {
                $this->elements = $elements;
            }
        }
    
        /**
         * 若要获得迭代因子,通过getIterator方法实现
         * @access public
         * @return ArrayObject
         */
        public function getIterator()
        {
            return new ArrayObject($this->elements);
        }
    
        /**
         * 增加元素
         * @access public
         * @param mixed $element  要添加的元素
         * @return boolean
         */
        public function add($element)
        {
            return (array_push($this->elements, $element)) ? true : false;
        }
    
        // 在数组开头插入一个单元
        public function unshift($element)
        {
            return (array_unshift($this->elements, $element)) ? true : false;
        }
    
        // 将数组最后一个单元弹出(出栈)
        public function pop()
        {
            return array_pop($this->elements);
        }
    
        /**
         * 增加元素列表
         * @access public
         * @param ArrayList $list  元素列表
         * @return boolean
         */
        public function addAll($list)
        {
            $before = $this->size();
            foreach ($list as $element) {
                $this->add($element);
            }
            $after = $this->size();
            return ($before < $after);
        }
    
        /**
         * 清除所有元素
         * @access public
         */
        public function clear()
        {
            $this->elements = [];
        }
    
        /**
         * 是否包含某个元素
         * @access public
         * @param mixed $element  查找元素
         * @return string
         */
        public function contains($element)
        {
            return (array_search($element, $this->elements) !== false);
        }
    
        /**
         * 根据索引取得元素
         * @access public
         * @param integer $index 索引
         * @return mixed
         */
        public function get($index)
        {
            return $this->elements[$index];
        }
    
        /**
         * 查找匹配元素,并返回第一个元素所在位置
         * 注意 可能存在0的索引位置 因此要用===False来判断查找失败
         * @access public
         * @param mixed $element  查找元素
         * @return integer
         */
        public function indexOf($element)
        {
            return array_search($element, $this->elements);
        }
    
        /**
         * 判断元素是否为空
         * @access public
         * @return boolean
         */
        public function isEmpty()
        {
            return empty($this->elements);
        }
    
        /**
         * 最后一个匹配的元素位置
         * @access public
         * @param mixed $element  查找元素
         * @return integer
         */
        public function lastIndexOf($element)
        {
            for ($i = (count($this->elements) - 1); $i > 0; $i--) {
                if ($this->get($i) == $element) {
                    return $i;
                }
            }
        }
    
        public function toJson()
        {
            return json_encode($this->elements);
        }
    
        /**
         * 根据索引移除元素
         * 返回被移除的元素
         * @access public
         * @param integer $index 索引
         * @return mixed
         */
        public function remove($index)
        {
            $element = $this->get($index);
            if (!is_null($element)) {
                array_splice($this->elements, $index, 1);
            }
            return $element;
        }
    
        /**
         * 移出一定范围的数组列表
         * @access public
         * @param integer $offset  开始移除位置
         * @param integer $length  移除长度
         */
        public function removeRange($offset, $length)
        {
            array_splice($this->elements, $offset, $length);
        }
    
        /**
         * 移出重复的值
         * @access public
         */
        public function unique()
        {
            $this->elements = array_unique($this->elements);
        }
    
        /**
         * 取出一定范围的数组列表
         * @access public
         * @param integer $offset  开始位置
         * @param integer $length  长度
         */
        public function range($offset, $length = null)
        {
            return array_slice($this->elements, $offset, $length);
        }
    
        /**
         * 设置列表元素
         * 返回修改之前的值
         * @access public
         * @param integer $index 索引
         * @param mixed $element  元素
         * @return mixed
         */
        public function set($index, $element)
        {
            $previous                = $this->get($index);
            $this->elements[$index]  = $element;
            return $previous;
        }
    
        /**
         * 获取列表长度
         * @access public
         * @return integer
         */
        public function size()
        {
            return count($this->elements);
        }
    
        /**
         * 转换成数组
         * @access public
         * @return array
         */
        public function toArray()
        {
            return $this->elements;
        }
    
        // 列表排序
        public function ksort()
        {
            ksort($this->elements);
        }
    
        // 列表排序
        public function asort()
        {
            asort($this->elements);
        }
    
        // 逆向排序
        public function rsort()
        {
            rsort($this->elements);
        }
    
        // 自然排序
        public function natsort()
        {
            natsort($this->elements);
        }
    
    }

    2.将ArrayList.php放到项目根目录下的extend文件夹下

    3.在测试文件中写入测试代码

    4.浏览器打开测试页面展示

  • 相关阅读:
    spring服务器的校验
    数据库中文到页面乱码 添加一个过滤器
    springmvc的form标签
    EasyUI触发方法、触发事件、创建对象的格式??
    JQuery如何获取按键的unicode编码?
    StringBuilder的append、StringBuffer的append和String str = "a"+"b"的区别?
    简述什么是ajax、javascript、json、Jquery?
    oracle分页
    Github的基本功能:
    Springmvc和struts2的区别?
  • 原文地址:https://www.cnblogs.com/zhangyouwu/p/8385642.html
Copyright © 2020-2023  润新知