在PHP中是否有"双"类型

lov*_*ing 7 php

如果没有,那么如何声明一个双重类型的数字?

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

echo testFloat(1.2);
Run Code Online (Sandbox Code Playgroud)

可捕获的致命错误:传递给testFloat()的参数1必须是float的实例,double给出

Fel*_*ing 7

更新:

关于类型提示:

类型提示只能是对象数组(自PHP 5.1以来)类型.不支持使用int和string的传统类型提示.

所以我不知道,但可能你得到错误,因为只支持arrayobject类型.


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

可以使用以下任何语法指定浮点数(也称为"浮点数","双数"或"实数"):

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>
Run Code Online (Sandbox Code Playgroud)

在那里你也发现:

转换为浮动

有关将字符串转换为float的信息,请参阅字符串转换为数字.对于其他类型的值,通过先将值转换为整数然后再转换为float来执行转换.有关更多信息,请参阅转换为整数.从PHP 5开始,如果对象转换为float,则抛出通知.


Art*_*cto 5

float在PHP类型在内部实现为一个C double。此类的大小由C标准未指定,C标准仅要求sizeof(float) <= sizeof(double) <= sizeof(long double)

§6.2.5.10

有3种实际的浮动类型,分别称为floatdoublelong double34)float类型的值集是double类型的值集的子集;double类型的值集合是long double类型的值集合的子集。

(从这里开始