Odpowiedzi:
Z podręcznika PHP :
Rozmiar liczby całkowitej jest zależny od platformy, chociaż zwykle przyjmuje się maksymalną wartość około dwóch miliardów (czyli 32 bity ze znakiem). PHP nie obsługuje liczb całkowitych bez znaku. Rozmiar całkowity można określić za pomocą stałej PHP_INT_SIZE, a maksymalną wartość za pomocą stałej PHP_INT_MAX od PHP 4.4.0 i PHP 5.0.5.
Platformy 64-bitowe zwykle mają maksymalną wartość około 9E18, z wyjątkiem systemu Windows przed PHP 7, gdzie zawsze była to wersja 32-bitowa.
32-bitowe wersje PHP:
64-bitowe wersje PHP:
Liczby są włącznie.
Uwaga: niektóre wersje 64-bitowe kiedyś używały 32-bitowych liczb całkowitych, szczególnie starsze wersje PHP dla systemu Windows
Wartości spoza tych zakresów są reprezentowane przez wartości zmiennoprzecinkowe, podobnie jak wartości niecałkowite w tych zakresach. Interpreter automatycznie określi, kiedy musi nastąpić przełączenie na zmiennoprzecinkowe, w oparciu o to, czy wartość wyniku obliczenia nie może być reprezentowana jako liczba całkowita.
PHP nie obsługuje liczb całkowitych bez znaku jako takich, ograniczając maksymalną wartość wszystkich liczb całkowitych do zakresu liczby całkowitej ze znakiem.
Rozmiar int PHP zależy od platformy :
Rozmiar liczby całkowitej jest zależny od platformy, chociaż zwykle przyjmuje się maksymalną wartość około dwóch miliardów (czyli 32 bity ze znakiem). PHP nie obsługuje liczb całkowitych bez znaku. Rozmiar całkowity można określić za pomocą stałej PHP_INT_SIZE, a maksymalną wartość za pomocą stałej PHP_INT_MAX od PHP 4.4.0 i PHP 5.0.5.
PHP 6 dodaje „długie” (64-bitowe liczby int).
(trochę późno, ale może się przydać)
Ufaj tylko PHP_INT_MAX i PHP_INT_SIZE , ta wartość różni się w zależności od Twojego arch (32/64 bity) i systemu operacyjnego ...
Wszelkie inne „domysły” lub „podpowiedzi” mogą być fałszywe.
Ach, znalazłem to: 2 32 - 1 (2147483647)
Całkowitą przepełnienie
Jeśli PHP napotka liczbę spoza granic typu całkowitego, zostanie zinterpretowana jako liczba zmiennoprzecinkowa. Ponadto operacja, w wyniku której liczba wykracza poza granice typu całkowitego, zwróci zamiast tego wartość zmiennoprzecinkową.
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
To zależy od twojego systemu operacyjnego, ale 2147483647 jest zwykłą wartością, zgodnie z instrukcją .