Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用严格的类型转换_Php_Casting_Type Conversion - Fatal编程技术网

在PHP中使用严格的类型转换

在PHP中使用严格的类型转换,php,casting,type-conversion,Php,Casting,Type Conversion,为什么这段代码终止时没有任何问题? 我认为它会输出一个TypeError异常,因为一个整数不能被强制转换或转换为float,因为声明了严格的类型 ?php declare(strict_types=1); function multiply(float $a, float $b): float { return (double)$a * (double)$b; } $six = multiply(2, 3); echo gettype($six); //output: double

为什么这段代码终止时没有任何问题? 我认为它会输出一个TypeError异常,因为一个整数不能被强制转换或转换为float,因为声明了严格的类型

?php
declare(strict_types=1);
function multiply(float $a, float $b): float {
    return (double)$a * (double)$b;
}
$six = multiply(2, 3);
echo gettype($six);

//output: double
可以基于每个文件启用严格模式。在严格模式下,只接受类型声明的确切类型的变量,或者抛出TypeError。此规则的唯一例外是,可能会给期望浮点的函数一个整数

这是一个:

加宽基元转换不会丢失有关数值整体大小的信息

可以基于每个文件启用严格模式。在严格模式下,只接受类型声明的确切类型的变量,或者抛出TypeError。此规则的唯一例外是,可能会给期望浮点的函数一个整数

这是一个:

加宽基元转换不会丢失有关数值整体大小的信息