Каков максимальный размер для int в PHP?

Игнорируя специальные библиотеки, которые позволяют работать с очень большими числами, какой самый большой int вы можете хранить в PHP?

Из руководства по PHP :

Размер целого зависит от платформы, хотя максимальное значение около двух миллиардов – это обычное значение (это 32 бита). PHP не поддерживает целые числа без знака. Целочисленный размер может быть определен с использованием константы PHP_INT_SIZE и максимального значения с использованием константы PHP_INT_MAX с PHP 4.4.0 и PHP 5.0.5.

64-разрядные платформы обычно имеют максимальное значение около 9E18, за исключением Windows до PHP 7, где всегда было 32 бит.

32-битные сборки PHP:

  • Целые числа могут составлять от -2,147,483,648 до 2,147,483,647 (~ ± 2 миллиарда)

64-битные сборки PHP:

  • Целые числа могут быть от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 (~ ± 9 квинтиллионов)

Номера включены.

Примечание: некоторые 64-битные сборки однажды использовали 32-битные целые числа, особенно старые версии Windows для PHP

Значения вне этих диапазонов представлены значениями с плавающей запятой, а также нецелыми значениями в этих диапазонах. Интерпретатор автоматически определит, когда этот переход к плавающей запятой должен произойти, исходя из того, нельзя ли представить значение результата вычисления не как целое число.

PHP не поддерживает «беззнаковые» целые числа как таковые, ограничивая максимальное значение всех целых чисел диапазоном «подписанного» целого числа.

Размер PHP ints зависит от платформы :

Размер целого зависит от платформы, хотя максимальное значение около двух миллиардов – это обычное значение (это 32 бита). PHP не поддерживает целые числа без знака. Целочисленный размер может быть определен с использованием константы PHP_INT_SIZE и максимального значения с использованием константы PHP_INT_MAX с PHP 4.4.0 и PHP 5.0.5.

PHP 6 добавляет «longs» (64-битные ints).

(немного поздно, но может быть полезно)

Только доверяйте PHP_INT_MAX и PHP_INT_SIZE , это значение зависит от вашей арки (32/64 бит) и вашей ОС …

Любая другая «догадка» или «подсказка» может быть ложной.

Я нашел это: 2 32 – 1 (2147483647)

http://au2.php.net/int

Целочисленное переполнение

Если PHP встречает число за пределами целочисленного типа, оно будет интерпретироваться как float. Кроме того, операция, которая приводит к числу за пределами целочисленного типа, вместо этого возвращает float.

<?php $large_number = 2147483647; var_dump($large_number); // output: int(2147483647) $large_number = 2147483648; var_dump($large_number); // output: float(2147483648) 

Это зависит от вашей ОС, но 2147483647 – это обычное значение, согласно руководству .