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()
- 通过用户生成器生成新数组;