mead-steve / spl-fix
此包已被废弃,不再维护。未建议替代包。
spL 具有一些非常酷的特性,但有一些奇特的命名约定和一些真正的陷阱。这个库旨在使 spl 代码更容易使用
v0.2.0
2014-02-25 11:00 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2021-03-29 06:14:49 UTC
README
PHP 的 spl 有一些非常酷的特性,但也存在一些错误/陷阱。这是一个封装库,希望能够减少 spl 造成的痛苦。
安装
安装此库最简单的方法是使用 composer。在你的项目的 composer.json
文件中添加
{ "require": { "mead-steve/spl-fix": "dev-master" } }
然后运行 composer update
。
修复
LimitIterator
当你想获取迭代器的一个子集时,limit iterator 非常有用。很好对吧?但是当你传递给 count() 时,你总是得到 1。此包提供了一个更新的 LimitIterator 类,它正确实现了可计数性。
EmptyIterator
修复后,传递给 count() 将返回零。毕竟它是空的。
FilterIterator
spL FilterIterator 只能传递一个迭代器。现在它被封装,以便可以传递任何可遍历的对象。这是通过在 IteratorIterator 中包装可遍历对象来处理的。以下子迭代器也被封装了
- RegexIterator
新增功能
RecursingArrayIterator
这是将数组包装在 RecursiveIterator 中,然后再将其包装在 RecursiveIteratorIterator 中的简写。
Helpers/IteratorWalker
IteratorWalker 允许迭代器以与 array_walk 中使用数组相同的方式使用。这样,两个代码片段将表现得相同
array_walk($array, function($value, $key) { echo $key . "=>" . $value; });
$walker = new IteratorWalker($iterator); $walker->walk(function($value, $key) { echo $key . "=>" . $value; });