Ich habe diesen Code
$vad = 1.1;
print gettype($vad);
var_dump($vad);
Dies wird Folgendes ausgeben:
double
float(1.1)
Also ist es doppelt oder schwebend in PHP?
Es gibt keinen Unterschied in PHP. float
, double
Oder real
sind der gleiche Datentyp.
Auf der C-Ebene wird alles als gespeichert double
.
Die tatsächliche Größe ist weiterhin plattformabhängig.
Weitere Informationen finden Sie im Handbuch:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}
, wenn ich es benutzesome(17.23)
, wirft es einen schwerwiegenden Fehler. Some () muss eine Instanz von float sein, doppelt angegeben,real
in PHP bisher keinen solchen Datentyp gibt .is_real
Funktion, mit der ein Alias vonis_float
...; )Für PHP sind sie gleich. http://www.php.net/manual/en/language.types.float.php :
Der verwirrende Teil ist, warum gettype (das Sie sowieso nicht verwenden sollten) "double" anstelle von "float" zurückgibt. Die Antwort lautet http://de2.php.net/manual/en/function.gettype.php :
quelle
Ab PHP 7.0.6 unter Windows wird dieser Befehl ohne xdebug verglichen:
und mit xdebug:
Beachten Sie, dass dies nur die Ausgabe von var_dump () ändert, nicht jedoch die eigentliche Speicherverwaltung.
Dies kann einige Probleme beheben, die auf einigen anderen Computern angezeigt werden,
double
anstattfloat
in var_dump angezeigt zu werden.Auch mit oder ohne xdebug wird
gettype
weiterhin zurückgegebenstring(6) "double"
.quelle
In PHP 7.0.14
Rückgabe "Schwerwiegender Fehler: Nicht erfasster TypeError: Argument 1, das an test () übergeben wurde, muss eine Instanz von double sein, float angegeben".
Druckt 2.2111 auf dem Bildschirm.
quelle
float
ist ein gültiger Typhinweis ( siehe ). Wenn Siedouble
stattdessendouble