是否有一个“问题”;“双”字;输入PHP

是否有一个“问题”;“双”字;输入PHP,php,Php,如果不是,那么如何声明双精度数字类型 function testFloat(float $f) { return $f; } echo testFloat(1.2); 可捕获的致命错误:传递给testFloat()的参数1必须是float的实例,双精度给定 更新: 关于: 类型提示只能是对象和数组(从PHP 5.1开始)类型。不支持使用int和string的传统类型提示 所以我不知道,但可能是因为只支持array和object类型,所以会出现错误 我不确定你想要什么,但只有: 浮点

如果不是,那么如何声明双精度数字类型

function testFloat(float $f)
{
    return $f;
}

echo testFloat(1.2);
可捕获的致命错误:传递给testFloat()的参数1必须是float的实例,双精度给定


更新:

关于:

类型提示只能是对象数组(从PHP 5.1开始)类型。不支持使用int和string的传统类型提示

所以我不知道,但可能是因为只支持
array
object
类型,所以会出现错误


我不确定你想要什么,但只有:

浮点数(也称为“浮点数”、“双精度数”或“实数”)可以使用以下任意语法指定:

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

在那里你还可以发现:

转换为浮点数

有关转换字符串的信息,请参见 要浮动,请参见。对于其他类型的值, 转换由以下程序执行: 首先将值转换为整数 然后漂浮。有关更多信息,请参阅。截至 PHP5中,如果对象 转换为浮动




请阅读并参阅。

PHP中的
float
类型在内部实现为C
double
。这种类型的大小由C标准未指定,它只要求
sizeof(float)错误与float或double无关。由于类型暗示只适用于数组或对象,PHP认为“float”是一个类。不要对基元标量类型使用类型暗示。PHP是一种非类型化语言。那样做没有意义

为了进一步说明我的观点,你可以试试这个例子

function testFloat(integer $f)
{
    return $f;
}

echo testFloat(1);
你会得到类似的错误

Catchable fatal error: Argument 1 passed to testFloat() must be an instance of integer, integer given, called in /private/tmp/test.php on line 8 and defined in /private/tmp/test.php on line 3

他的意思是精度:有单精度和双精度(通常是4字节和8字节)浮点数。