php spl的优势,PHP SPL核心库相对以前有什么好处嘛?
我想问下,PHP5 提供的SPL有什么好处,以前写个array就可以解决,为什么现在非要包装一个类呢?
比如遍历目录这段代码,请问SPL比传统代码好在哪呢?
SPL实现getInnerIterator();
if ($item->isFile() &&
in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
return TRUE;
}
}
}
// 实例化
foreach (new RecursiveFileFilterIterator('D:/history') as $item) {
echo $item . PHP_EOL;
}
传统方法:
回复内容:
我想问下,PHP5 提供的SPL有什么好处,以前写个array就可以解决,为什么现在非要包装一个类呢?
比如遍历目录这段代码,请问SPL比传统代码好在哪呢?
SPL实现getInnerIterator();
if ($item->isFile() &&
in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
return TRUE;
}
}
}
// 实例化
foreach (new RecursiveFileFilterIterator('D:/history') as $item) {
echo $item . PHP_EOL;
}
传统方法:
抽象,外部代码可以根据 FilterIterator 来操作,不需要管是否是操作文件系统,比如你以后可能会将文件系统转换为数据库。
项目可能出现的演变情况:
RecursiveFileFilterIterator => RecursiveDatabaseFilterIterator => RecursiveMemoryFilterIterator
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php spl的优势,PHP SPL核心库相对以前有什么好处嘛?相关推荐
- AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...
- ZStack源码剖析之核心库鉴赏——FlowChain
本文首发于泊浮目的专栏:https://segmentfault.com/blog... 前言 在ZStack(或者说产品化的IaaS软件)中的任务通常有很长的执行路径,错误可能发生在路径的任意一处. ...
- sentinel 端口_双剑合璧Nacos结合Sentinel实现流量安全控制(一):Sentinel核心库和控制台...
Alibaba Sentinel 是一款高性能且轻量级的流量控制.熔断降级解决方案.是面向分布式服务架构的高可用流量控制组件. Sentinel 官网:https://sentinelguard.io ...
- Kotlin协程核心库分析-5 Job异常处理器注意点
本章我们简单探讨一下异常处理: 我们知道协程传入CoroutineExceptionHandler对象即可捕获异常,那么对于子协程是否适用呢? fun main() {val eChild = Cor ...
- CSCD.中国科学引文数据库核心库和引文库来源期刊列表(2007年-2008年)
CSCD.中国科学引文数据库核心库和引文库来源期刊列表(2007年-2008年) (按英文刊名字顺和中文刊名拼音音序排序) 说 明 中国科学引文数据库分为核心库和扩展库,数据库的来源期刊每两年进行评选 ...
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- 一万个bug——安装阿里云SDK核心库遇到的问题(涉及Rust、cryptography、openssl等的安装)
本文涉及Rust.cryptography.openssl等的安装 ----解决方式都是硬方式(仅凭报错信息分析,没有技术分析,按需参考) 其中: Rust 安装时遇到的问题在1-5 cryptogr ...
- JAVA学习笔记—JAVA SE(四)JAVA核心库类(下)
文章目录 四.JAVA核心库类(下) 1. 异常机制和File类 1.1 异常机制 1.1.1 基本概念 1.1.2 异常的分类 1.1.3 异常的避免 1.1.4 异常的捕获 1.1.5 异常的抛出 ...
- 核心库aud$过大清理
*险核心库aud$过大,需要清理,DB版本为11.2.0.4,由于保险行业需要审计信息至少保留半年,所以不能直接对aud$进行truncate清理,故需要使用ORACLE的清理方法. 点击(此处)折叠 ...
最新文章
- redhat7防火墙关闭_RedHat Enterprise Linux 7关闭防火墙方法
- Android中ViewPager+Fragment的基本使用
- nrf51822笔记之密码配对过程梳理
- 如何配置三层交换机创建VLAN 3
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(10)Pty loves string(Border+二维数点)
- leetcode3 无重复字符最长子串
- 关于《详解》第12.1节按键驱动的进一步阐述
- Spring Boot静态资源映射规则
- 【clickhouse】clickhouse配置多块磁盘
- Docker使用概览图
- 零基础带你学习MySQL—数学函数(十四)
- 关于把类放到结构体中
- linux实现普通用户只允许使用部分命令
- 很牛的求职经历(转载)
- typora 公式对齐_让 Markdown 写作更简单 Typora 完全使用指南
- 使用MediaRecorder录制音频和视频(Camera1)
- 南阳oj入门题-兰州烧饼
- python读取.nii.gz文件并使用nibabel展示医学图片
- java 加密 压缩_如何用java 将文件加密压缩为zip文件.
- easypoi导入excel实践方法:
热门文章
- win10不能预览图片
- TENSORFLOW PROCESS FINISHED WITH EXIT CODE -1073741819 (0XC0000005)
- pyqt5动态删除控件问题
- mnn python 笔记
- cuda runtime error (59) : device-side assert triggered when running transfer_learning_
- logical_not torch
- face track
- 脊回归(Ridge Regression) 岭回归
- CheXNet 肺炎
- faiss简介及示例