std / lib
非官方标准运行时。标准库的库:最基本的。
Suggests
- std/net: Provides basic networking utilities with safety guarantees
This package is auto-updated.
Last update: 2024-09-07 19:09:59 UTC
README
std-lib
是一个类型安全的辅助工具集合和几个 PHP "核心" 函数的安全实现。
有关 std/lib
的保证的更多信息,请参阅 stdlib 网站。
该库目前正在等待进行非常基本的 QA。它应该在 2019 年 9 月底前普遍可用。
提供的方法
Std\Str
函数
Str
是 UTF-8 准备好的字符串工具的标准名称。
Std\Arr
函数
Arr
是数组工具的标准名称(由于 Array
是保留的)。
\Std\Arr::callRecursive(array $array, callable $method)
\Std\Arr::arrayUniqueRecursive(array $array)
\Std\Arr::keyWalk(array $inputArray, callable $fn)
\Std\Arr::count($array) : array
计数值或抛出异常。
\Std\Arr::countAny($arrayOrOther): int
接受任何值,不仅仅是可计数的,对于不可计数的返回零,不抛出异常。
\Std\Arr::getColumn($array)
与 array_column
相同,但保留键和额外的类型检查。如果子元素中不存在键(列),则抛出 Array\MissingKeyException
。如果子元素中存在非数组元素,则抛出 Array\UnexpectedElementException
。
\Std\Arr::pileByColumn(array $inputArray, string $column) : array`
返回一个新结构化的数组,添加了一个额外的维度,因此输入数组
[ ['id' => 'ipsum', 'a' => '1', 'b' => '2', 'c' => 'charlie'], ['id' => 'lorem', 'd' => '4', 'e' => '2', 'f' => 'foxtrot'], // Note these are both id "lorem" ['id' => 'lorem', 'g' => '1', 'h' => '2', 'z' => 'zeta'], // Note these are both id "lorem" ]
如果按 "id" 列 "piled",则成为
[ ['ipsum'] => [ ['id' => 'ipsum'', ''a' => '1', 'b' => '2', 'c' => 'charlie'] ], ['lorem'] => [ ['id' => 'lorem', ''d' => '4', 'e' => '2', 'f' => 'foxtrot'], ['id' => 'lorem', ''g' => '1', 'h' => '2', 'z' => 'zeta'], ] ]
\Std\Arr::rekeyByColumn(array[] $inputArray, string $columnName): array`
假设 $inputArray
的每个元素都是一个数组,并且在其中有一个键为 $columnName
的子元素,其值为有效键,使用该值重新键数组。
如果这些值的值不唯一,将抛出 LossyOperationException
异常。
如果任何元素不是数组,将抛出 Array\MissingKeyException
或 Array\UnexpectedElementException
。
\Std\Arr::rekeyByColumnLossy(array[] $inputArray, string $columnName) : array
查看 \Std\Arr::rekeyByColumn
,但允许转换过程中的损失。
\Std\Arr::columnPopLeft(array[] $inputArray) : array
从每个子数组元素中弹出 "left" 或 "top"(最前面或最低索引)元素,返回这些值的数组。
如果任何元素包含零个元素,则在其位置返回 NULL
。
如果它是除 array
之外的其他类型,则抛出 Array\UnexpectedElementException
。
\Std\Arr::columnPopLeft(array[] $inputArray) : array
弹出每个子数组元素中最右边或最底部的元素。
未记录
\Std\Arr::columnRecursive(Iterable $haystack, ...$subKey)
\Std\Arr::columnSearch(Iterable $haystack, $needle)
\Std\Arr::columnSearchRecursive(Iterable $haystack, $needle)
\Std\Arr::combineWith($value, $keyKey, $valueKey, $keyInsensitive = false)
\Std\Arr::idiff($x, $y)
实际上:array_unique(array_merge(array_intersect($x, $y), array_intersect($y, $x)));
\Std\Arr::keyEach($array, $callback)
\Std\Arr::mapReduce(callable $mapReduceFn, ... $values)
\Std\Arr::merge(array $array1, array $array2 = null, array $_ = null)
\Std\Arr::multisort(array $arr, $arg = null, $arg = null, $_ = null)
\Std\Arr::popLeft(array $array)
\Std\Arr::popRight(array $array)
\Std\Arr::push(array $array, ...$vars)
\Std\Arr::reduce_j(callable $reduceFn, $values)
\Std\Arr::search($needle, array $haystack, $strict = null)
\Std\Arr::shift(array $array)
\Std\Arr::slice(array $array, $offset, $length = null)
参见:Std\List::slice(array $array, $offset, $length = null)
\Std\Arr::splice(array $input, $offset, $length = null, $replacement = null)
Std\Arr::unshift(array $array, ...$vars)
Std\Arr::walk(array $array, $funcname, $userdata = null)
Std\Arr::walkRecursive(array $input, $funcname, $userdata = null)
Std\Arr::trim($array)
异常
-
Std\ExceptionInterface
- Std\RuntimeException
- Std\UnexpectedTypeException - 用于非类型提示方法
- Std\UnexpectedValueException
- Std\UnsafeOperationException
- Std\InformativeExceptionInterface - 提供用户友好的错误消息
-
Std\Array\ExceptionInterface
- Array\UnexpectedElementException
- Array\KeyCollisionException
Std\Introspect
内省和内部函数