📅  最后修改于: 2023-12-03 15:33:37.400000             🧑  作者: Mango
在 PHP 中,变量可以代表多种类型的数据,如整数、浮点数、字符串、数组等等。如果您需要将变量限定为特定类型,可以使用以下方法:
从 PHP 7 开始,您可以使用 declare(strict_types=1)
来启用严格类型检查。这将强制要求您在函数定义中指定参数和返回值的类型,并且会在有类型错误时引发致命错误。
declare(strict_types=1);
function sum(int $a, int $b): int {
return $a + $b;
}
echo sum(3, 4); // 输出 7
echo sum(3.5, 4); // 引发 TypeError
在函数定义中,您可以使用参数名称后面的冒号来指定参数的类型。这称为参数类型提示。
function foo(int $bar) {
// $bar 必须是整数
}
同样,您也可以使用函数定义前面的冒号来指定返回值的类型。这称为返回类型提示。
function foo(): int {
// 必须返回一个整数
return 42;
}
如果您需要将一个变量转换为特定类型,可以使用以下强制类型转换操作符:
(int)
(float)
(string)
(bool)
$a = '42';
$b = (int) $a; // $b 现在是整数 42
如果您需要将数组或对象转换为特定类型,可以使用以下函数:
intval()
floatval()
strval()
boolval()
$a = ['foo' => '42'];
$b = intval($a['foo']); // $b 现在是整数 42
在某些情况下,PHP 会将一个变量自动转换为其他类型。例如,在将一个数字和一个字符串相加时,数字会自动转换为字符串。
$a = 42;
$b = 'foo' . $a; // $b 现在是字符串 'foo42'
在其他情况下,PHP 会尝试将字符串转换为数字或布尔值。如果字符串无法转换,则会被视为 0 或 false
。
$a = '42';
$b = $a + 1; // $b 现在是整数 43
$c = 'foo';
$d = $c ? true : false; // $d 现在是布尔值 false
declare(strict_types=1)
启用严格类型检查。