Réponses:
Il n'y a aucune différence en PHP. float, doubleou realsont du même type de données.
Au niveau C, tout est stocké sous forme de fichier double.
La taille réelle dépend toujours de la plate-forme.
Consultez le manuel pour plus de détails:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}, quand je l'utilise, some(17.23)il lance une erreur fatale, certains () doivent être une instance de float, double donné,
realde données dans php jusqu'à présent.
is_realfonction, avec est un alias de is_float...; )
Pour PHP, ce sont les mêmes. http://www.php.net/manual/en/language.types.float.php :
Les nombres à virgule flottante (également appelés «flottants», «doubles» ou «nombres réels») peuvent être spécifiés à l'aide de l'une des syntaxes suivantes: [...]
La partie déroutante est pourquoi gettype (que vous ne devriez pas utiliser, de toute façon) renvoie "double" au lieu de "float". La réponse est http://de2.php.net/manual/en/function.gettype.php :
"double" (pour des raisons historiques, "double" est renvoyé dans le cas d'un float, et pas simplement "float")
Depuis PHP 7.0.6 sous Windows, comparez cette commande sans xdebug:
$ php -r 'var_dump(28.4);'
float(28.4)
et avec xdebug:
$ php -r 'var_dump(28.4);'
Command line code:1:
double(28.4)
Notez que cela ne modifie que la sortie de var_dump (), mais pas la gestion de la mémoire réelle.
Cela peut résoudre certains problèmes pour lesquels vous voyez doubleau lieu de floats'afficher dans var_dump sur d'autres machines.
De plus, avec ou sans xdebug, gettyperenvoie toujours string(6) "double".
En PHP 7.0.14
function test(double $a) {
var_dump($a);
}
test(2.2111);
Renvoie "Fatal error: Uncaught TypeError: l'argument 1 passé à test () doit être une instance de double, float donné".
function test(float $a) {
var_dump($a);
}
test(2.2111);
Imprime 2.2111 à l'écran.