zoukankan      html  css  js  c++  java
  • 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.浏览器打开测试页面展示

  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/zhangyouwu/p/8385642.html
Copyright © 2011-2022 走看看