¿Cuál es el valor máximo para una int en PHP?

Ignorando las bibliotecas especiales que le permiten trabajar con números muy grandes, ¿cuál es el valor int más grande que puede almacenar en PHP?

Del manual de PHP :

El tamaño de un entero depende de la plataforma, aunque un valor máximo de aproximadamente dos mil millones es el valor habitual (es decir, 32 bits firmados). PHP no admite enteros sin signo. El tamaño entero se puede determinar usando la constante PHP_INT_SIZE, y el valor máximo usando la constante PHP_INT_MAX desde PHP 4.4.0 y PHP 5.0.5.

Las plataformas de 64 bits generalmente tienen un valor máximo de aproximadamente 9E18, excepto en Windows anterior a PHP 7, donde siempre fue de 32 bits.

Comstackciones de 32 bits de PHP:

  • Los enteros pueden ser de -2,147,483,648 a 2,147,483,647 (~ ± 2 mil millones)

Comstackciones de PHP de 64 bits:

  • Los enteros pueden ser de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (~ ± 9 quintillones)

Los números son inclusivos.

Nota: algunas comstackciones de 64 bits alguna vez usaron enteros de 32 bits, particularmente comstackciones de Windows anteriores de PHP

Los valores fuera de estos rangos están representados por valores de coma flotante, al igual que los valores no enteros dentro de estos rangos. El intérprete determinará automáticamente cuándo debe pasar este cambio a coma flotante en función de si el valor de resultado de un cálculo no se puede representar como un número entero.

PHP no tiene soporte para enteros “sin signo” como tales, limitando el valor máximo de todos los enteros al rango de un entero “firmado”.

El tamaño de los PHP Ints depende de la plataforma :

El tamaño de un entero depende de la plataforma, aunque un valor máximo de aproximadamente dos mil millones es el valor habitual (es decir, 32 bits firmados). PHP no admite enteros sin signo. El tamaño entero se puede determinar usando la constante PHP_INT_SIZE, y el valor máximo usando la constante PHP_INT_MAX desde PHP 4.4.0 y PHP 5.0.5.

PHP 6 agrega “longs” (64 bit ints).

(un poco tarde, pero podría ser útil)

Solo confíe en PHP_INT_MAX y PHP_INT_SIZE , este valor varía en su arco (32/64 bits) y su sistema operativo …

Cualquier otra “suposición” o “sugerencia” puede ser falsa.

Ah lo encontré: 2 32 – 1 (2147483647)

http://au2.php.net/int

Desbordamiento de enteros

Si PHP encuentra un número más allá de los límites del tipo entero, se interpretará como un flotante. Además, una operación que da como resultado un número más allá de los límites del tipo entero devolverá una flotación en su lugar.

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

Depende de su sistema operativo, pero el 2147483647 es el valor habitual, según el manual .