Mam ten kod
$vad = 1.1;
print gettype($vad);
var_dump($vad);
to da:
double
float(1.1)
Czyli w php jest to double czy float?
Nie ma różnicy w PHP. float
, double
Czy real
są takie same typ danych.
Na poziomie C wszystko jest przechowywane jako plik double
.
Rzeczywisty rozmiar jest nadal zależny od platformy.
Więcej informacji można znaleźć w instrukcji:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}
, kiedysome(17.23)
jej używam , rzuca błąd krytyczny, niektóre () muszą być instancją typu float, podana podwójnie,real
w php nie ma takiego typu danych .is_real
funkcja, która jest aliasemis_float
...; )W przypadku PHP są takie same. http://www.php.net/manual/en/language.types.float.php :
Mylące jest to, dlaczego gettype (którego i tak nie powinieneś używać) zwraca „double” zamiast „float”. Odpowiedź to http://de2.php.net/manual/en/function.gettype.php :
źródło
Począwszy od PHP 7.0.6 w systemie Windows, porównanie tego polecenia bez xdebug:
oraz z XDebug:
Zauważ, że zmienia to tylko wyjście var_dump (), ale nie zmienia faktycznego zarządzania pamięcią.
Może to rozwiać pewne obawy, dlaczego na niektórych innych komputerach
double
zamiastfloat
w var_dump wyświetla się.Ponadto, z xdebug lub bez,
gettype
nadal powracastring(6) "double"
.źródło
W PHP 7.0.14
Zwraca „Błąd krytyczny: Uncaught TypeError: Argument 1 przekazany do testu () musi być instancją double, podana liczba zmiennoprzecinkowa”.
Drukuje 2,2111 na ekranie.
źródło
float
jest ważna wskazówka typu ( patrz ). Kiedydouble
zamiast tego wpiszesz , jest traktowany jak nazwa klasy, a interpreter zgłasza wyjątek, ponieważ oczekuje zmiennej z instancjądouble
klasy