hxss / array-object
1.8.0
2021-06-30 15:36 UTC
Requires
- php: >=5.6.39
- zendframework/zend-eventmanager: ^3.2
README
PHP 数组的面向对象接口。
该类实现了几乎所有PHP 函数。
工作基本原理
- 所有以
array_前缀开头的 PHP 函数现在都是类方法,无前缀,采用驼峰命名法(array_change_key_case -> ArrayObject::changeKeyCase()); - 在大多数情况下,类方法不需要
array类型的参数; - 所有接受
array参数的方法现在接受array|ArrayObject; - 所有需要返回
array的方法现在返回ArrayObject;
异常和与 PHP API 的差异
未实现的功能
API 发生变化的功能
ArrayObject::combine()- 静态方法;array_fill&array_fill_keys合并到静态ArrayObject::fill()中,其中第二个参数定义行为;ArrayObject::range()- 静态方法;- 所有
array_diff*函数合并到ArrayObject::diff()中,其中 userfunc 总共得到 4 个参数(key1, val1, key2, val2); ArrayObject::filter()总是将 2 个参数传递给 userfunc:键和值;- 所有
array_intersect*函数合并到ArrayObject::intersect()中,其中 userfunc 总共得到 4 个参数(key1, val1, key2, val2); array_key_first实现为ArrayObject::firstKey();array_key_last实现为ArrayObject::lastKey();- 所有
array_merge*函数合并到ArrayObject::merge()方法中; ArrayObject::multisort()仅在传入的ArrayObject值中保存排序后的数组。所有array类型的参数将按常规用于排序,但不会更新。array_rand实现为ArrayObject::randKeys();array_replace&array_replace_recursive合并到静态ArrayObject::replace()中,其中最后一个可选参数true表示递归;- 所有数组排序函数合并到
ArrayObject::sort()中,具有 3 个新标志,可以与默认标志结合使用(按位或); array_walk&array_walk_recursive合并到静态ArrayObject::walk()中,其中最后一个可选参数true表示递归;
新功能
ArrayObject::recursive()- 递归地将ArrayObject中的所有子数组转换为;ArrayObject::items()- 返回原始数组;ArrayObject::append()- 将一个或多个元素追加到数组的末尾。类似于push,但返回自身;ArrayObject::prepend()- 将一个或多个元素添加到数组的开头。类似于unshift,但返回自身;ArrayObject::rand()- 返回包含一个或多个随机元素的关联数组;ArrayObject::first()- 返回数组的第一个值;ArrayObject::last()- 返回数组的最后一个值;ArrayObject::eq()- 检查对象是否等于$other数组;ArrayObject::touch()- 返回指定偏移处的值或使用$default值初始化它;ArrayObject::generator()- 通过用户生成器生成新数组;