xactsystems / cast
安全地将PHP混合类型值转换为标量类型或null。
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^11.3
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.10
This package is auto-updated.
Last update: 2024-09-29 12:46:23 UTC
README
安全地将混合值转换为标量类型或null。
用于在PHP中提供安全转换标量值和DateTime,避免在将'mixed'值转换为预期不转换时出现PHPSTAN问题。
为了更好地理解问题,请查看PHPSTAN问题9295: phpstan/phpstan#9295
文档
安装
composer require xactsystems/cast
使用
<?php declare(strict_types=1); namespace Xact\Cast; use DateTime; use Xact\Cast\Cast; class Test { protected int $myInt; protected ?int $myNullInt; protected float $myFloat; protected ?float $myNullFloat; protected string $myString; protected ?string $myNullString; protected bool $myBool; protected ?bool $myNullBool; protected ?array $myNullArray; protected ?object $myNullObject; protected ?DateTime $myNullDateTime; public function testCast(mixed $value, mixed $nullValue = null): void { $this->myInt = Cast::intval($value); $this->myNullInt = Cast::nullInt($nullValue); $this->myFloat = Cast::nullFloat($value); $this->myNullFloat = Cast::nullFloat($nullValue); $this->myString = Cast::strval($value); $this->myNullString = Cast::nullString($nullValue); $this->myBool = Cast::boolval($value); $this->myNullBool = Cast::nullBool($nullValue); $this->myNullArray = Cast::nullArray($nullValue); $this->myNullObject = Cast::nullObject($nullValue); $this->myNullDateTime = Cast::nullDateTime($nullValue); } }
方法
static Cast::intval(mixed $value): int
将$value转换为int。
如果$value不是数组、bool、float、int、resource、string或null之一,则抛出\InvalidArgumentException。
static floatval(mixed $value): float
将$value转换为float。
如果$value不是数组、bool、float、int、string或null之一,则抛出\InvalidArgumentException。
static strval(mixed $value): string
将$value转换为float。
如果$value不是bool、float、int、resource、string或null之一,则抛出\InvalidArgumentException。
static boolval(mixed $value): bool
将$value转换为float。
如果$value不是数组、bool、float、int、string或null之一,则抛出\InvalidArgumentException。
static nullInt(mixed $value): ?int
将$value转换为int|null。
如果$value不是数组、bool、float、int、resource、string或null之一,则抛出\InvalidArgumentException。
static nullFloat(mixed $value): ?float
将$value转换为float|null。
如果$value不是数组、bool、float、int、string或null之一,则抛出\InvalidArgumentException。
static nullString(mixed $value): ?string
将$value转换为string|null。
如果$value不是bool、float、int、resource、string或null之一,则抛出\InvalidArgumentException。
static nullBool(mixed $value): ?bool
将$value转换为bool|null。
如果$value不是数组、bool、float、int、string或null之一,则抛出\InvalidArgumentException。
static nullArray(mixed $value): ?array
将$value转换为array|null。
见 https://php.ac.cn/manual/en/language.types.array.php#language.types.array.casting
static nullObject(mixed $value): ?object
将$value转换为object|null。
见 https://php.ac.cn/manual/en/language.types.object.php#language.types.object.casting
static nullDateTime(mixed $value): ?DateTime
将$value转换为DateTime|null。
如果$value不是bool、float、int、resource、string或null之一,则抛出\InvalidArgumentException。有关有效的DateTime字符串格式,请参阅https://php.ac.cn/manual/en/datetime.construct.php。