Respuestas:
No hay diferencia en PHP. float, doubleo realson del mismo tipo de datos.
En el nivel C, todo se almacena como double.
El tamaño real sigue dependiendo de la plataforma.
Consulte el manual para obtener más detalles:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}, cuando la uso some(17.23)arroja un error fatal, algunos () deben ser una instancia de flotante, dado doble,
realde datos en php hasta ahora.
is_realfunción, con es un alias de is_float...; )
Para PHP, son lo mismo. http://www.php.net/manual/en/language.types.float.php :
Los números de coma flotante (también conocidos como "flotantes", "dobles" o "números reales") se pueden especificar utilizando cualquiera de las siguientes sintaxis: [...]
La parte confusa es por qué gettype (que no debería usar, de todos modos) devuelve "doble" en lugar de "flotar". La respuesta es http://de2.php.net/manual/en/function.gettype.php :
"doble" (por razones históricas, se devuelve "doble" en el caso de un flotante, y no simplemente "flotante")
A partir de PHP 7.0.6 en Windows, comparando este comando sin xdebug:
$ php -r 'var_dump(28.4);'
float(28.4)
y con xdebug:
$ php -r 'var_dump(28.4);'
Command line code:1:
double(28.4)
Tenga en cuenta que esto solo cambia la salida de var_dump (), pero no la administración de memoria real.
Esto puede abordar algunas preocupaciones por las que ve en doublelugar de floatmostrarse en var_dump en algunas otras máquinas.
Además, con o sin xdebug, gettypetodavía regresa string(6) "double".
En PHP 7.0.14
function test(double $a) {
var_dump($a);
}
test(2.2111);
Devuelve "Error fatal: Error de tipo no detectado: El argumento 1 pasado a test () debe ser una instancia de double, float dado".
function test(float $a) {
var_dump($a);
}
test(2.2111);
Imprime 2.2111 en la pantalla.