У меня есть этот код
$vad = 1.1; print gettype($vad); var_dump($vad);
это выведет:
double float(1.1)
Таким образом, это двойной или плавающий в php?
В PHP нет никакой разницы. float
, double
или real
– это один и тот же тип данных.
На уровне C все хранится как double
.
Реальный размер по-прежнему зависит от платформы.
Подробнее см. В руководстве:
http://www.php.net/manual/en/language.types.float.php
Для PHP они одинаковы. http://www.php.net/manual/en/language.types.float.php :
Числа с плавающей запятой (также называемые «float», «doubleles» или «real numbers») могут быть указаны с использованием любого из следующих синтаксисов: […]
Запутанная часть заключается в том, почему gettype (который вы не должны использовать, во всяком случае) возвращает «double» вместо «float». Ответ: http://de2.php.net/manual/en/function.gettype.php :
«double» (по историческим причинам «double» возвращается в случае float, а не просто «float»)
Начиная с PHP 7.0.6 в Windows, сравнивая эту команду без xdebug:
$ php -r 'var_dump(28.4);' float(28.4)
и с xdebug:
$ php -r 'var_dump(28.4);' Command line code:1: double(28.4)
Обратите внимание, что это изменяет только выход var_dump (), но не фактическое управление памятью.
Это может касаться некоторых проблем, почему вы видите double
вместо float
показанного в var_dump на некоторых других машинах.
Кроме того, с или без gettype
все равно возвращает string(6) "double"
.