Quelle est la valeur maximale pour un int en PHP?

En ignorant les bibliothèques spéciales qui vous permettent de travailler avec de très grands nombres, quelle est la plus grande valeur int que vous pouvez stocker en PHP?

A partir du manuel PHP :

La taille d’un entier dépend de la plate-forme, bien qu’une valeur maximale d’environ deux milliards soit la valeur habituelle (32 bits signés). PHP ne supporte pas les entiers non signés. La taille entière peut être déterminée en utilisant la constante PHP_INT_SIZE et la valeur maximale en utilisant la constante PHP_INT_MAX depuis PHP 4.4.0 et PHP 5.0.5.

Les plates-formes 64 bits ont généralement une valeur maximale d’environ 9E18, sauf sur Windows avant PHP 7, où il était toujours de 32 bits.

Versions 32 bits de PHP:

  • Les nombres entiers peuvent être compris entre -2 147 483 648 et 2 147 483 647 (~ ± 2 milliards)

Versions 64 bits de PHP:

  • Les nombres entiers peuvent être compris entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807 (environ ± 9 quintillions).

Les nombres sont inclusifs.

Note: certains builds 64 bits utilisaient autrefois des entiers 32 bits, en particulier les versions plus anciennes de PHP

Les valeurs en dehors de ces plages sont représentées par des valeurs à virgule flottante, tout comme les valeurs non entières comsockets dans ces plages. L’interpréteur déterminera automatiquement le moment où ce basculement en virgule flottante doit avoir lieu, selon que la valeur de résultat d’un calcul ne peut pas être représentée sous la forme d’un entier.

PHP ne prend pas en charge les entiers “unsigned” en tant que tels, limitant la valeur maximale de tous les entiers à la plage d’un entier “signé”.

La taille de PHP ints dépend de la plateforme :

La taille d’un entier dépend de la plate-forme, bien qu’une valeur maximale d’environ deux milliards soit la valeur habituelle (32 bits signés). PHP ne supporte pas les entiers non signés. La taille entière peut être déterminée en utilisant la constante PHP_INT_SIZE et la valeur maximale en utilisant la constante PHP_INT_MAX depuis PHP 4.4.0 et PHP 5.0.5.

PHP 6 ajoute “longs” (64 bits ints).

(un peu tard, mais pourrait être utile)

Ne faites confiance qu’à PHP_INT_MAX et PHP_INT_SIZE , cette valeur varie sur votre arch (32/64 bits) et sur votre OS …

Tout autre “deviner” ou “indice” peut être faux.

Ah je l’ai trouvé: 2 32 – 1 (2147483647)

http://au2.php.net/int

Débordement d’entier

Si PHP rencontre un nombre au-delà des limites du type entier, il sera interprété comme un flottant. De plus, une opération qui aboutit à un nombre au-delà des limites du type entier renverra un flottant à la place.

 

Cela dépend de votre système d’exploitation, mais 2147483647 est la valeur habituelle, selon le manuel .