La plupart des langages de programmation ont des limitations sur les types de variables. Le dépassement de ces limites entraînera des problèmes ou des erreurs d'exécution, et PHP ne fait pas exception. En PHP, la plage des variables entières va de -2147483648 à 2147483647. Lorsque cette plage est dépassée, le problème du dépassement de la plage entière se produira.
Il peut y avoir de nombreuses raisons pour lesquelles la plage entière est dépassée, telles que :
Afin de mieux comprendre le problème du dépassement de la plage entière par PHP, nous pouvons l'illustrer à travers l'exemple suivant.
Par exemple, essayons de calculer la somme de deux entiers afin que le résultat soit hors de la plage du type entier.
$x = 2147483647;
$y = 2;
echo $x + $y; // Le résultat de sortie est -2147483647
Puisque le résultat de l'ajout de $x et $y dépasse la valeur maximale de 2147483647, php Traitez-le comme un nombre négatif et affichez le résultat comme -2147483647.
Vous pouvez également définir manuellement la variable entière sur une valeur supérieure à 2147483647 pour reproduire le problème de débordement d'entier.
$x = 2147483648;
echo $x; // Le résultat de sortie est -2147483648
Puisque 2147483648 est supérieur à la plus grande valeur entière 2147483647, PHP le traite comme un nombre négatif -2147483648.
Lors de la lecture de données provenant d'autres systèmes ou interfaces, vous devez faire attention au problème des types de données incohérents.
Par exemple, obtenons des données numériques à partir d'un fichier json.
{"number": 12345678901234567890}
$json = file_get_contents("/path/to/json/file.json");
$data = json_decode($json, true);
$number = $data[" number"];
echo $number; // Le résultat de sortie est 12345678901234567890
Étant donné que la valeur entière maximale en php est 2147483647 et que la valeur lue dans le fichier json est supérieure à cette valeur, php la traite comme un flottant. plutôt qu'un entier.
Concernant la façon de résoudre le problème selon lequel PHP dépasse la plage entière, il existe les solutions suivantes :
$ SUM = GMP_ADD ($ x, $ y) ; Stocker des entiers dans la base de données au lieu d'utiliser des variables php . Le stockage de base de données peut accueillir des valeurs entières plus grandes.
Modifier le fichier de configuration php. Vous pouvez essayer de modifier les éléments de configuration dans le fichier de configuration php php.ini, comme définir l'utilisation d'entiers 64 bits.
Dans le développement PHP, le dépassement de la plage des nombres entiers est un problème qui ne peut être ignoré. Une attention particulière doit être portée lors de l'écriture du code et de la révision du code pour éviter que de tels problèmes ne se produisent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!