mead-steve/spl-fix

此包已被废弃,不再维护。未建议替代包。

spL 具有一些非常酷的特性,但有一些奇特的命名约定和一些真正的陷阱。这个库旨在使 spl 代码更容易使用

v0.2.0 2014-02-25 11:00 UTC

This package is auto-updated.

Last update: 2021-03-29 06:14:49 UTC


README

Build Status Latest Stable Version License

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;
    });