Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

  • Целые числа могут быть от -2,147,483,648 до 2 147 483 647 (~ & plusmn; 2 млрд.)

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

  • Целые числа могут быть от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 (~ & plusmn; 9 quintillion)

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

Ах, я нашел это: 2 32 - 1 (2147483647)

http://au2.php.net/int

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

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

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

$large_number =  2147483648;
var_dump($large_number);
// output: float(2147483648)

Ответ 6

Это зависит от вашей ОС, но 2147483647 - это обычное значение, в соответствии с manual.

Ответ 7

Хотя константы PHP_INT_* существуют очень долгое время, одни и те же значения MIN/MAX могут быть найдены программным путем путем сдвига влево до достижения отрицательного числа:

$x = 1;
while ($x > 0 && $x <<= 1);
echo "MIN: ", $x;
echo PHP_EOL;
echo "MAX: ", ~$x;

Ответ 8

Он подчиняется архитектуре сервера, на котором работает PHP. Для 64-битных,

print PHP_INT_MIN. ", ". PHP_INT_MAX; урожайность -9223372036854775808, 9223372036854775807