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就花费了不少的时间,为此做了很多的弯路,特此写一篇博文来给后面学习的同学少走一点的弯路.写的不好的地方欢迎各位学习的同学们能够指 ...
随机推荐
- PKU 1019 Number Sequence(模拟,思维)
题目 以下思路参考自discuss:http://poj.org/showmessage?message_id=176353 /*我的思路: 1.将长串数分成一个个部分,每个部分是从1到x的无重复的数 ...
- 填坑...P1546 最短网络 Agri-Net
P1546 最短网络 Agri-Net 难度普及/提高- 时空限制1s / 128MB 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要 ...
- MySQL中的注释符号的使用
前言 在学习MySQL的过程中,因为目前接触的语法简单,所以实在没有想到过加入注释.在写博客使用Markdown时,突然想用注释语句,所以便百度了一下,引用了这一篇转载博客. MySQL中的注释符号有 ...
- node源码详解(三)
本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource3 本博客同步在https://cnodejs.o ...
- Python检测删除你的好友-wxpy模块(发送特殊字符式)
下面是代码: from wxpy import *import timeprint("本软件采用特殊字符检测,即对方收不到任何信息!")print("或许某个版本微信就会 ...
- 断路器-Hystrix的深入了解
前言 高可用相关的技术以及架构,对于大型复杂的分布式系统,是非常重要的.而高可用架构中,非常重要的一个环节,就是如何将分布式系统中的各个服务打造成高可用的服务,从而足以应对分布式系统环境中的各种各样的 ...
- PowerPC汇编指令集
PowerPC 体系结构规范(PowerPC Architecture Specification)公布于 1993 年,它是一个 64位规范 ( 也包括 32 位子集 ).差点儿全部常规可用的 Po ...
- C++求解汉字字符串的最长公共子序列 动态规划
近期,我在网上看了一些动态规划求字符串最长公共子序列的代码.可是无一例外都是处理英文字符串,当处理汉字字符串时.常常会出现乱码或者不对的情况. 我对代码进行了改动.使用wchar_t类型存储字 ...
- nyoj--284--坦克大战(bfs模板)
坦克大战 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Many of us had played the game "Battle city" i ...
- 国王的烦恼---nyoj
国王的烦恼 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在 ...