wmde/iterable-functions

将可迭代对象转换为更具体类型的函数

0.2.0 2018-09-13 12:30 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:46:51 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Download count

提供基本函数,用于处理类型为 iterable 的变量(从PHP 7.1版开始添加)。主要用于将类型为 iteratble 的变量转换为更具体的类型,如 array

如果你在某处有一个可迭代对象,并且需要将其传递给只接受 arrayIterator 的函数,你将遇到问题。你需要添加条件逻辑来确定值的类型,并在需要时将其转换,这在需要 Iterator 的情况下会变得相当复杂。

这个问题非常常见,因为PHP 7.1版的标准库通常需要数组、迭代器或遍历器。

示例

function doStuff(iterable $iterable) {
    $iterableMinusFooBar = array_diff( $iterable, [ 'foo', 'bar' ] );
}
// Output: array_diff(): Argument #1 is not an array

安装

要将此软件包作为本地、特定于项目的依赖项添加到项目中,只需将 wmde/iterable-functions 作为依赖项添加到项目中的 composer.json 文件。下面是一个定义 Iterable Functions 1.x 依赖项的最小 composer.json 文件示例:

{
    "require": {
        "wmde/iterable-functions": "~1.0"
    }
}

用法

当你需要一个数组时

function doStuff(iterable $iterable) {
    $iterableMinusFooBar = array_diff( iterable_to_array( $iterable ), [ 'foo', 'bar' ] );
}

当你需要一个迭代器时

function doStuff(iterable $iterable) {
    $firstFewThings = new LimitIterator( iterable_to_iterator( $iterable ), 42 );
}

运行测试

进行完整CI运行

composer ci

仅进行测试

composer test

仅进行风格检查

composer cs

发行说明

0.2.0 (2018-09-13)

  • 添加了 iterable_merge

0.1.0 (2017-06-17)

初始发布包含

  • iterable_to_array
  • iterable_to_iterator