Réponses:
Depuis le 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 (soit 32 bits signés). PHP ne prend pas en charge 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ù elle était toujours 32 bits.
Constructions 32 bits de PHP:
Constructions 64 bits de PHP:
Les nombres sont inclusifs.
Remarque: certaines versions 64 bits utilisaient autrefois des entiers 32 bits, en particulier les anciennes versions Windows 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 dans ces plages. L'interpréteur déterminera automatiquement le moment où ce passage à la virgule flottante doit se produire en fonction du fait 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 "non signés" en tant que tels, limitant la valeur maximale de tous les entiers à la plage d'un entier "signé".
La taille des ints PHP dépend de la plate - forme :
La taille d'un entier dépend de la plate-forme, bien qu'une valeur maximale d'environ deux milliards soit la valeur habituelle (soit 32 bits signés). PHP ne prend pas en charge 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 des "longs" (entiers 64 bits).
(un peu tard, mais pourrait être utile)
Ne faites confiance qu'à PHP_INT_MAX et PHP_INT_SIZE , cette valeur varie en fonction de votre arch (32/64 bits) et de votre OS ...
Toute autre «estimation» ou «indice» peut être fausse.
Ah je l' ai trouvé: 2 32 - 1 (2147483647)
Débordement d'entier
Si PHP rencontre un nombre au-delà des limites du type entier, il sera interprété comme un flottant à la place. De plus, une opération qui aboutit à un nombre au-delà des limites du type entier renverra un flottant à la place.
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
Cela dépend de votre système d'exploitation, mais 2147483647 est la valeur habituelle, selon le manuel .