用途:对类,方法,属性,参数的提取生成文档;自动加载插件

实列化类同于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类的更多相关文章

  1. PHP标准库 (SPL) 笔记

    简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...

  2. php SPL学习

    数据结构 SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能 SplStack - 该SplStack类提供了一种使用双向链表实现栈的主 ...

  3. SPL学习 迭代器

    主要学习内容: 慕课网的spl视频教程 阮一峰SPL学习笔记 http://www.ruanyifeng.com/blog/2008/07/php_spl_notes.html SPL类详解 http ...

  4. PHP类和函数注释大全

    每次要用PHP的某个功能的时候,都要去查一下,于是决定将PHP所有类和函数都整理出来,加上注释 大致实现 将php.jar文件解压,取出目录stubs 将stubs中的所有php文件中的注释去掉,并做 ...

  5. 【SPL标准库专题(1)】 SPL简介

    什么是SPL SPL是Standard PHP Library(PHP标准库)的缩写. 根据官方定义,它是"a collection of interfaces and classes th ...

  6. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  7. PHP7函数大全(4553个函数)

    转载来自: http://www.infocool.net/kb/PHP/201607/168683.html a 函数 说明 abs 绝对值 acos 反余弦 acosh 反双曲余弦 addcsla ...

  8. 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 · 引入访问方法的限 ...

  9. PHP框架Yii2.0安装(基础版、高级版)

    最近农成也是切入了yiiframework 2.0,就是安装yii2.0就花费了不少的时间,为此做了很多的弯路,特此写一篇博文来给后面学习的同学少走一点的弯路.写的不好的地方欢迎各位学习的同学们能够指 ...

随机推荐

  1. PKU 1019 Number Sequence(模拟,思维)

    题目 以下思路参考自discuss:http://poj.org/showmessage?message_id=176353 /*我的思路: 1.将长串数分成一个个部分,每个部分是从1到x的无重复的数 ...

  2. 填坑...P1546 最短网络 Agri-Net

    P1546 最短网络 Agri-Net 难度普及/提高- 时空限制1s / 128MB 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要 ...

  3. MySQL中的注释符号的使用

    前言 在学习MySQL的过程中,因为目前接触的语法简单,所以实在没有想到过加入注释.在写博客使用Markdown时,突然想用注释语句,所以便百度了一下,引用了这一篇转载博客. MySQL中的注释符号有 ...

  4. node源码详解(三)

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource3 本博客同步在https://cnodejs.o ...

  5. Python检测删除你的好友-wxpy模块(发送特殊字符式)

    下面是代码: from wxpy import *import timeprint("本软件采用特殊字符检测,即对方收不到任何信息!")print("或许某个版本微信就会 ...

  6. 断路器-Hystrix的深入了解

    前言 高可用相关的技术以及架构,对于大型复杂的分布式系统,是非常重要的.而高可用架构中,非常重要的一个环节,就是如何将分布式系统中的各个服务打造成高可用的服务,从而足以应对分布式系统环境中的各种各样的 ...

  7. PowerPC汇编指令集

    PowerPC 体系结构规范(PowerPC Architecture Specification)公布于 1993 年,它是一个 64位规范 ( 也包括 32 位子集 ).差点儿全部常规可用的 Po ...

  8. C++求解汉字字符串的最长公共子序列 动态规划

        近期,我在网上看了一些动态规划求字符串最长公共子序列的代码.可是无一例外都是处理英文字符串,当处理汉字字符串时.常常会出现乱码或者不对的情况. 我对代码进行了改动.使用wchar_t类型存储字 ...

  9. nyoj--284--坦克大战(bfs模板)

    坦克大战 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 Many of us had played the game "Battle city" i ...

  10. 国王的烦恼---nyoj

    国王的烦恼 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在 ...