Bu koda sahibim
$vad = 1.1;
print gettype($vad);
var_dump($vad);
bu çıktı:
double
float(1.1)
Yani php'de double mı yoksa float mı?
Bu koda sahibim
$vad = 1.1;
print gettype($vad);
var_dump($vad);
bu çıktı:
double
float(1.1)
Yani php'de double mı yoksa float mı?
Yanıtlar:
PHP'de hiçbir fark yoktur. float, doubleYa da realaynı veri türü vardır.
C düzeyinde, her şey bir double.
Gerçek boyut hala platforma bağlıdır.
Daha fazla ayrıntı için kılavuza bakın:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}some(17.23)
realphp'de şimdiye kadar böyle bir veri türü olmadığını açıklığa kavuşturmak .
is_realişlev var, with is a alias of is_float...; )
PHP için bunlar aynıdır. http://www.php.net/manual/en/language.types.float.php :
Kayan nokta numaraları ("kayan sayılar", "çiftler" veya "gerçek sayılar" olarak da bilinir) aşağıdaki sözdizimlerinden herhangi biri kullanılarak belirtilebilir: [...]
Kafa karıştıran kısım, gettype'ın (yine de kullanmamalısınız) neden "float" yerine "double" döndürdüğüdür. Cevap http://de2.php.net/manual/en/function.gettype.php :
"double" (tarihsel nedenlerden dolayı, float durumunda "double" döndürülür, sadece "float" değil)
Windows üzerinde PHP 7.0.6'dan itibaren, bu komutu xdebug olmadan karşılaştırarak :
$ php -r 'var_dump(28.4);'
float(28.4)
ve ile Xdebug:
$ php -r 'var_dump(28.4);'
Command line code:1:
double(28.4)
Bunun yalnızca var_dump () çıktısını değiştirdiğini, ancak gerçek bellek yönetimini değiştirmediğini unutmayın.
Bu, bazı diğer makinelerde var_dump'ta gösterilmek doubleyerine neden gördüğünüzle ilgili bazı endişeleri floatgiderebilir.
Ayrıca, xdebug olsun veya olmasın, gettypeyine de geri döner string(6) "double".
PHP 7.0.14'te
function test(double $a) {
var_dump($a);
}
test(2.2111);
"Önemli hata: Yakalanmamış TypeError: test () 'e geçirilen bağımsız değişken 1, double, verilen bir float örneği olmalıdır" döndürür.
function test(float $a) {
var_dump($a);
}
test(2.2111);
2.2111'i ekrana yazdırır.