Maison > Article > développement back-end > Analyser le type de données PHP entier (Integer)
Un entier est un nombre dans l'ensemble ℤ = {..., -2, -1, 0, 1, 2, ...}.
Les valeurs entières peuvent être représentées en décimal, hexadécimal, octal ou binaire, et peuvent être précédées d'un symbole facultatif (- ou +).
Entier exprimé binaire disponible depuis PHP 5.4.0.
Pour utiliser la représentation octale, un nombre doit être précédé de 0 (zéro). Pour utiliser la représentation hexadécimale, le nombre doit être précédé de 0x. Pour utiliser la représentation binaire, le nombre doit être précédé de 0b.
Exemple n°1 EntierExpression textuelle
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) ?>
La description formelle de l'entier est :
décimal : [1-9][0 - 9]*
| 0
hexadécimal : 0[xX][0-9a-fA-F]+
octal : 0[0-7]+
binaire : 0b[01]+
entier : [+-]?décimal
| [+-]?hexadécimal
| ?binaire
<?php var_dump(01090); // 八进制 010 = 十进制 8 ?>Débordement d'entierSi un nombre donné dépasse la plage des nombres entiers, il sera interprété comme
float . De même, si le résultat de l’opération dépasse la plage d’entiers, float sera également renvoyé.
Exemple n°3 Débordement d'entier sous système 32 bits<?php $large_number = 2147483647; var_dump($large_number); // int(2147483647) $large_number = 2147483648; var_dump($large_number); // float(2147483648) $million = 1000000; $large_number = 50000 * $million; var_dump($large_number); // float(50000000000) ?>Exemple n°4 Débordement d'entier sous système 64 bits
<?php $large_number = 9223372036854775807; var_dump($large_number); // int(9223372036854775807) $large_number = 9223372036854775808; var_dump($large_number); // float(9.2233720368548E+18) $million = 1000000; $large_number = 50000000000000 * $million; var_dump($large_number); // float(5.0E+19) ?>Il n'y a pas de division entière dans PHP
Opérateur. 1/2 donne un flottant de 0,5. La valeur peut être convertie en un entier sans la partie décimale, ou utiliser la fonction round() pour un meilleur arrondi.
Convertir en entier<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>
nécessite un paramètre entier, la valeur est automatiquement convertie. Vous pouvez également utiliser la fonction intval() pour convertir une valeur en type entier. Voir :
Discrimination de conversion de type. Conversion à partir d'une valeur booléenne
Conversion de
FloatSi le nombre à virgule flottante dépasse la plage entière (généralement +/- 2,15e+9 = 2^31 sur les plateformes 32 bits, +/- 9,22e+18 = 2^63 sur les plateformes 64 bits ), le résultat n'est pas défini car la précision est insuffisante pour donner un résultat entier exact. Il n’y a aucun avertissement dans ce cas, pas même aucune notification !
Avertissement
Ne convertissez jamais une fraction inconnue en un nombre entier, car cela peut parfois conduire à des résultats imprévisibles.
La conversion d'autres types en entier n'est pas définie. Ne vous fiez à aucun comportement existant car il peut changer sans préavis.<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>
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!