SPL类
用途:对类,方法,属性,参数的提取生成文档;自动加载插件
实列化类同于new:
$ref = new ReflectionClass($classname);
$class = $ref->newInstance(); //相当于new $classname;
区别:new 出来的class,不能访问它的私有属性/方法,但反射就可以;
反射返回的对象是class的元数据对象(属性/方法),而不是类本身
#SPL标准库
###SPL数据结构
SplDoublyLinkedList:双向链表
SplStack:堆
SplQueue:队列
SplFixedArray:定长php数组
###SPL迭代器
AppendIterator:按顺序访问几个不同的迭代器
$a = new ArrayIterator(array('a','b','c'));
$b = new ArrayIterator(array('e','d','f'));
$iterator = new AppendIterator;
$iterator->append($a);
$iterator->append($b);
//$iterator->current();
//$iterator->getArrayIterator();
//$iterator->getInnerIterator();
foreach ($iterator as $key => $value) {
echo $value."\n";
}
ArrayIterator:数组迭代器
$a = array(
'name' => 'daxia',
'age' => '10'
);
$a = new ArrayIterator($a);
$a->append(array(
'address' => '123',
));
CachingIterator:缓存迭代另一个迭代器
$iterator = new ArrayIterator(array(1,2,3));
$cache = new CachingIterator($iterator, CachingIterator::FULL_CACHE);
$cache->next();
var_dump($cache->getCache());
CallbackFilterIterator:同时执行过滤和回调操作
DirectoryIterator:目录文件迭代器
EmptyIterator:类占位符迭代器,不执行任何操作
FilesystemIterator:文件迭代器,继承DirectoryIterator
FilterIterator:过滤数据,必须实现accept()抽象方法
GlobIterator:带匹配模式的文件遍历器
InfiniteIterator:无限循环访问迭代器,当到达末尾时,自动重头遍历
IteratorIterator:通用类型迭代器,可以自定义迭代器
LimitIterator:限定迭代器,限定遍历的元素
MultipleIterator:依次遍历所有连接迭代的迭代器
NoRewindIterator:不能多次迭代,只能一次性
RecursiveArrayIterator:创建一个用于递归形式数组结构迭代器,类似多维数组
###常用的SPL函数
iterator_to_array() 将迭代器中的元素拷贝到数组
iterator_count() 统计迭代器的元素个数
spl_autoload() __autoload()函数
SPL类的更多相关文章
- PHP标准库 (SPL) 笔记
简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...
- php SPL学习
数据结构 SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能 SplStack - 该SplStack类提供了一种使用双向链表实现栈的主 ...
- SPL学习 迭代器
主要学习内容: 慕课网的spl视频教程 阮一峰SPL学习笔记 http://www.ruanyifeng.com/blog/2008/07/php_spl_notes.html SPL类详解 http ...
- PHP类和函数注释大全
每次要用PHP的某个功能的时候,都要去查一下,于是决定将PHP所有类和函数都整理出来,加上注释 大致实现 将php.jar文件解压,取出目录stubs 将stubs中的所有php文件中的注释去掉,并做 ...
- 【SPL标准库专题(1)】 SPL简介
什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写. 根据官方定义,它是"a collection of interfaces and classes th ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- PHP7函数大全(4553个函数)
转载来自: http://www.infocool.net/kb/PHP/201607/168683.html a 函数 说明 abs 绝对值 acos 反余弦 acosh 反双曲余弦 addcsla ...
- paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较
paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较 PHP5的新特性 2 · 对象的参照过渡是默认的(default) 3 · 引入访问属性的限制 3 · 引入访问方法的限 ...
- PHP框架Yii2.0安装(基础版、高级版)
最近农成也是切入了yiiframework 2.0,就是安装yii2.0就花费了不少的时间,为此做了很多的弯路,特此写一篇博文来给后面学习的同学少走一点的弯路.写的不好的地方欢迎各位学习的同学们能够指 ...
随机推荐
- 51nod1185 威佐夫游戏 V2【博弈论】
有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出2堆石子的数量, ...
- [bzoj1860 ZJOI2006] 超级麻将 (线性dp)
传送门 Description Input 第一行一个整数N(N<=100),表示玩了N次超级麻将. 接下来N行,每行100个数a1..a100,描述每次玩牌手中各种牌的数量.ai表示数字为i的 ...
- 当样式中存在!important时无法使用show()或hide() 2017-06-11 22:25 15人阅读 评论(0) 收藏
如果使用!important在你的样式中,比如display: none !important,此时就不能用show()了 但是我在查阅资料时发现有这样的解释, If using !important ...
- 获取元素属性中的[x] 标签: javascript 2016-12-24 22:35 105人阅读 评论(0)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 24.基于groovy脚本进行partial update
主要知识点 在es中其实是有内置的脚本支持的,可以基于groovy脚本实现各种各样的复杂操作 基于groovy脚本,如何执行partial update es scripting module,我们会 ...
- noip模板复习
自己敲模板还是有很多容易错的地方 写在注释里面了 LCA #include<bits/stdc++.h> #define REP(i, a, b) for(register int i = ...
- CodeForces - 274A - k-Multiple Free Set
先上题目 k-Multiple Free Set time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- mongodb--分片架构【待填的坑】
首先有一个问题没有搞懂:什么是自动分片?用脚本吗? 一: 多机方式中的另一种方式[分片 => sharding] 分片的对象的谁? 对一个[集合 => 表]进行拆分,把一个大数据拆分成多个 ...
- ASP.NET--MVC--伪静态
原文地址 以前伪静态很流行主要是为了SEO优化排名,现在搜索引擎对静态网站和动态网站的权重差不多了,就没有必要再伪静态了,个人意见,仅供参考. 有些客户要求设置静态的,为了完成需求,而且更简单的做法就 ...
- Spring MVC-概述(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_overview.htm 说明:示例基于Spring MVC 4.1.6. Spr ...