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) - ); $i > ; $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, );
}
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.浏览器打开测试页面展示
thinkphp5中extend的使用?的更多相关文章
- thinkphp5中使用phpmailer实现发送邮件功能(转载)
一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...
- thinkphp5中使用phpmailer实现发送邮件功能
一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...
- 解析jQuery中extend方法--源码解析以及递归的过程《二》
源码解析 在解析代码之前,首先要了解extend函数要解决什么问题,以及传入不同的参数,会达到怎样的效果.extend函数内部处理传入的不同参数,返回处理后的对象. extend函数用来扩展对象,增加 ...
- 解析jQuery中extend方法--用法《一》
extend方法在jQuery中是一个很重要的方法,jQuey内部用它来扩展属性方法.常用语jQuery插件开发. jQuery提供了两个方法,$.extend和$.fn.extend,两个方法内部实 ...
- jQuery中$.extend(true,object1, object2);深拷贝对象
语法:jQuery.extend( [deep ], target, object1 [, objectN ] ) 深浅拷贝对应的参数就是[deep],是可选的,为true或false.默认情况是fa ...
- thinkphp5中使用PHPExcel(转载)
thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等…… 接下来说一下怎么使用 ...
- vue中extend/component/mixins/extends的区别
vue中extend/component/mixins/extends的区别 教你写一个vue toast弹窗组件 Vue.extend构造器的延伸
- thinkphp5中如何使用 usort
thinkphp5中如何使用 usort 一.总结 一句话总结:其实比较函数加上命名空间就好啦,不然找不到 比较函数加命名空间 数组做usort的第二个参数 usort($question_list, ...
- thinkphp5中的配置如何使用
thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...
随机推荐
- bzoj1566 [NOI2009]管道取珠——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1566 一眼看上去很懵... 但是答案可以转化成有两个人在同时取珠子,他们取出来一样的方案数: ...
- 洛谷P3004 宝箱Treasure Chest——DP
题目:https://www.luogu.org/problemnew/show/P3004 似乎有点博弈的意思,但其实是DP: f[i][j] 表示 i~j 的最优结果,就可以进行转移: 注意两个循 ...
- 转载:百为STM32开发板教程之十一——NOR FLASH
转载:http://bbs.21ic.com/icview-586199-1-1.html 百为STM32开发板教程之十一——NOR FLASH 参考文档:百为stm32开发板光盘\st官方参考资料\ ...
- MySQL 三种关联查询的方式: ON vs USING vs 传统风格
看看下面三个关联查询的 SQL 语句有何区别? 1SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) 2 ...
- 【140】◀▶ ArcGIS技巧
目录: Add XY Data 图例修改 中文字符左斜体设置 专题图只显示“度” 制作渐变图例 待定 待定 待定 1. 在ArcGIS中插入含有经纬度的*.txt或者*.xls文件等 File> ...
- 无线 WIFI 的13个信道频率范围(转载)
转自:http://cnzhx.net/blog/13-channels-of-wifi/ 目前主流的无线WIFI网络设备不管是802.11b/g还是802.11b/g/n 一般都支持13个信道.它们 ...
- bzoj 1511: [POI2006]OKR-Periods of Words【kmp】
n-ne[n]是n的最长循环节长度,其实就是n-最短前缀=后缀长度 然后我们要求最短循环节,其实就是ne一直往前跳,跳到不能跳为止,这时的n-ne[n]就是n的最短循环节长度 #include< ...
- bzoj 3677: [Apio2014]连珠线【树形dp】
参考:http://www.cnblogs.com/mmlz/p/4456547.html 枚举根,然后做树形dp,设f[i][1]为i是蓝线中点(蓝线一定是父子孙三代),f[i][0]为不是,转移很 ...
- Word Cloud (词云) - JavaScript
在上一篇中已经分享了用 Python 创建词云了.接下来继续总结其他创建词云的方法. >> Create Word Cloud via JavaScript JavaScript 可以借助 ...
- AutoCAD2012启动错误 1308 源文件未找到
启动AutoCAD2012时,弹出错误1308,如图所示: 是何原因? 对CAD的运行有何影响?