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


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

6 87

6 ответов:

с PHP manual:

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

PHP 6 добавляет " longs "(64 бит значения типа int.)

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

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

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

Ах я нашел его: 232 - 1 (2147483647)

http://au2.php.net/int

переполнение целого числа

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

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

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

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