ulrichsg / php-collections
PHP 5.3 的集合类
dev-master
2013-07-17 13:58 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-23 13:21:30 UTC
README
PHP 的数组是一种万能的数据结构 - 非常灵活,但在许多情况下,我更希望有像 Java 集合 API 提供的更具体的功能。自从 PHP 5 以来,标准 PHP 库 提供了一些类来处理这些情况,但远非全部。这个项目试图添加更多。
是什么?为什么?
想象以下代码片段,它根据类型聚合值
$totals = array(); foreach ($items as $item) { if (!isset($totals[$item->type])) { $totals[$item->type] = 0; } $totals[$item->type] += $item->value; }
if (!isset(...))
块使得这段代码相当难看,但它却是必要的,以避免更难看的警告。使用此包中的 NumberMap
类,我们可以避免它,只需编写
$totals = new NumberMap(); foreach ($items as $item) { $totals->add($item->type, $item->value); }
集合类型
到目前为止,这个包只提供了两种集合类型
Map
- 基本键值映射NumberMap
- 一个可以进行一些数学运算的映射(参见上面的示例)
我非常希望有更多,所以请告诉我你的想法 - 或者你的拉取请求 :)
常用功能
为了最大程度的地方便,这个包中的所有类都实现了以下接口
- ArrayAccess - 方括号语法
- IteratorAggregate - foreach 循环
- Countable - count() 支持
安装
- 作为项目依赖项:只需将
ulrichsg/php-collections
添加到你的 composer.json 文件中。 - 独立用于开发:克隆此存储库并运行
make
以查看一些有用的命令。
API 文档
前往此处 查看由 PHPDoc 生成的文档。
许可协议
此软件包在 MIT 许可协议 下发布。