wmde / iterable-functions
将可迭代对象转换为更具体类型的函数
0.2.0
2018-09-13 12:30 UTC
Requires
- php: >=7.1
- wmde/traversable-iterator: ~1.0
Requires (Dev)
- mediawiki/mediawiki-codesniffer: ~22.0.0
- ockcyp/covers-validator: ~1.0
- phpunit/phpunit: ~7.3.5
- squizlabs/php_codesniffer: ~3.3.1
This package is not auto-updated.
Last update: 2024-09-15 02:46:51 UTC
README
提供基本函数,用于处理类型为 iterable
的变量(从PHP 7.1版开始添加)。主要用于将类型为 iteratble
的变量转换为更具体的类型,如 array
。
如果你在某处有一个可迭代对象,并且需要将其传递给只接受 array
或 Iterator
的函数,你将遇到问题。你需要添加条件逻辑来确定值的类型,并在需要时将其转换,这在需要 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