大泽/type-utils

PHP类型转换工具。

v0.2.0 2022-01-04 22:08 UTC

This package is auto-updated.

Last update: 2024-09-10 14:04:45 UTC


README

Build Status

StringUtil

StringUtil::canBeString(mixed $value): bool

如果 $value 可以安全地转换为字符串(是标量或具有 __toString 方法的对象或 null),则返回 true

StringUtil::canBeString 方法快捷方式

$array = ['string', 123, [], null];
array_filter($array, StringUtil::canBeString); // ['string', 123, null]

StringUtil::toStringOrNull(mixed $value): ?string

如果可能,将值转换为 string 或返回 null

StringUtil::toStringOrNull 方法快捷方式

$a = ['string', 123, [], new stdClass()];
array_map(StringUtil::toStringOrNull, $a); // ['string', '123', null, null]

StringUtil::toString(mixed $value): string

如果可能,将值转换为 string 或抛出 InvalidTypeException

StringUtil::toString 方法快捷方式

$a = ['string', 123, null];
array_map(StringUtil::toString, $a); // ['string', '123', '']

$b = ['string', new stdClass()];
array_map(StringUtil::toString, $b); // throws InvalidTypeException

NumberUtil

NumberUtil::canBeNumber(mixed $value): bool

如果值可以安全地转换为 int|float,则返回 true,这意味着

  • 它是数字
  • 或数值字符串
  • 或可以转换为数值字符串
  • 或是一个可以转换为 0|1 的布尔值
  • 或为 null

NumberUtil::canBeNumber 方法快捷方式

$array = [123, 1.23, '123', 'string', null];
array_filter($array, NumberUtil::canBeNumber); // [123, 1.23, '123', null]

NumberUtil::toIntOrNull(mixed $value): ?int

如果可能,将值转换为 int 或返回 null

NumberUtil::toIntOrNull 方法快捷方式

$a = [123, 1.23, 'string'];
array_map(NumberUtil::toIntOrNull, $a); // [123, 1, null]

NumberUtil::toInt(mixed $value): int

如果可能,将值转换为 int 或抛出 InvalidTypeException

NumberUtil::toFloatOrNull(mixed $value): ?float

如果可能,将值转换为 float 或返回 null

NumberUtil::toFloatOrNull 方法快捷方式

$a = [123, 1.23, 'string'];
array_map(NumberUtil::toFloatOrNull, $a); // [123.0, 1.23, null]

NumberUtil::toFloat(mixed $value): float

如果可能,将值转换为 float 或抛出 InvalidTypeException

ArrayUtil

ArrayUtil::canBeArray(mixed $value): bool

如果 $value 是或可以转换为 array(可迭代或 null),则返回 true。

ArrayUtil::canBeArray 方法快捷方式

$array = [['array'], new ArrayObject(['object']), 'string'];
array_filter($array, ArrayUtil::canBeArray); // [['array'], new ArrayObject(['object'])]

ArrayUtil::toArrayOrNull(mixed $value): ?array<int|string, mixed>

将 $value 转换为 array(保留键)或返回 null

ArrayUtil::toArrayOrNull 方法快捷方式

$a = ['a' => ['array'], 'b' => 'string', 'c' => new ArrayObject(['object'])];
array_map(ArrayUtil::toArrayOrNull, $a); // ['a' => ['array'], 'b' => null, 'c' => ['object']]

$iterate = function() {
    yield 9 => 'nine';
    yield 9 => 'nine';
    yield 9 => 'nine';
};
array_map(ArrayUtil::toArrayOrNull, $iterate()); // [9 => 'nine']

ArrayUtil::toArrayListOrNull(mixed $value): ?array<int, mixed>

将 $value 转换为 array-list(重新索引键)或返回 null

ArrayUtil::toArrayListOrNull 方法快捷方式

$a = ['a' => ['array'], 'b' => 'string', 'c' => new ArrayObject(['object'])];
array_map(ArrayUtil::toArrayListOrNull, $a); // [['array'], null, ['object']]

$iterate = function() {
    yield 9 => 'nine';
    yield 9 => 'nine';
    yield 9 => 'nine';
};
array_map(ArrayUtil::toArrayOrNull, $iterate()); // ['nine', 'nine', 'nine']

ArrayUtil::toArray(mixed $value): array<int|string, mixed>

将 $value 转换为 array(保留键)或抛出 InvalidTypeException

ArrayUtil::toArrayList(mixed $value): array<int, mixed>

将 $value 转换为 array-list(重新索引键)或抛出 InvalidTypeException

ArrayUtil::isCountable(mixed $value): bool

与标准 is_countable 相同,此外它还允许通过 ArrayUtil::isCountable 短路调用。

ArrayUtil::countOrNull(mixed $value): ?int

如果 $value 可计数,则返回计数或返回 null

BooleanUtil

BooleanUtil::canBeBool(mixed $value): bool

如果 $value 可以被视为布尔值(true, false, 0, 1),则返回 true。

BooleanUtil::canBeBool 快捷方式也可用。

BooleanUtil::toBoolOrNull(mixed $value): ?bool

如果可能,将值转换为 bool 或返回 null

BooleanUtil::toBool(mixed $value): ?bool

如果可能,将值转换为 bool 或抛出 InvalidTypeException

DateUtil

DateUtil::canBeDate(mixed $value): bool

如果 $value 可以转换为 DateTimeImmutable(意味着它具有 DateTimeInterface 或是 strtotime 支持的字符串),则返回 true

DateUtil::canBeDate 方法快捷方式

$now = new DateTime('now');
$a = ['today', $now, 'never'];
array_filter($a, DateUtil::canBeDate); // ['today', $now]

DateUtil::toDatetimeOrNull(mixed $value): ?DateTimeImmutable

如果可能,将值转换为 DateTimeImmutable 或返回 null

快捷方式 DateUtil::toDatetimeOrNull 也可用。

日期工具类::toDatetime(mixed $value): DateTimeImmutable

如果可能,将值转换为DateTimeImmutable,否则抛出InvalidTypeException

快捷方式日期工具类::toDatetime也提供。

日期工具类::toDateFormatOrNull(mixed $value, string $format): ?string

如果$value是日期,则将其转换为指定的日期格式,否则返回null

日期工具类::toDateFormat(mixed $value, string $format): string

如果$value是日期,则将其转换为指定的日期格式,否则抛出InvalidTypeException

日期工具类::toTimestampOrNull(mixed $value): ?int

如果$value是日期,则将其转换为Unix时间戳,否则返回null

日期工具类::toTimestamp(mixed $value): int

如果$value是日期,则将其转换为Unix时间戳,否则抛出InvalidTypeException