Les entiers en PHP 8
#1 Les bases de numérotation des entiers en PHP
En PHP 8 le type entier est désigné par le mot réservé int
. Les entiers sont exprimés par défaut en base 10 😃.
Vous pouvez exprimer les entiers dans d'autres bases de numérotation : 😎
- Pour exprimer un entier en base 8 plusieurs solutions. Vous pouvez mettre un zéro devant le nombre, par exemple
0123
. Depuis PHP 8.1.0, vous pouvez ajouter la lettre o soit en minuscule, soit en majuscule (* en plus du zéro) ce qui donne0o123
ou0O123
. Cette possibilité a sans doute été ajoutée pour harmoniser la manière de changer de base. En effet, on va le voir, pour faire de l'hexa, on écrit le préfixe0x
, pour faire du binaire, on écrit0b
et donc maintenant pour faire de l'octal, on pourra écrire0o
(C'est super). - Donc, pour exprimer un entier en base 16, vous devez utiliser le traditionnel préfixe zéro x (ou zéro X) soit par exemple
0x1A
. - Pour exprimer un entier en binaire, vous devez utiliser le préfixe zéro b (ou zéro B) soit par exemple
0b11111111
. - Enfin, depuis PHP 7.4.0, vous pouvez insérer des tirets bas, par exemple pour, écrire
1_234_567
au lieu de1234567
.
#2 Les constantes prédéfinies associées aux entiers
La taille d'un entier en mémoire sur votre machine est donnée par la constante prédéfinie PHP_INT_SIZE
(* elle est exprimée en octets). La valeur maximale est donnée par PHP_INT_MAX
. La valeur minimale est donnée par PHP_INT_MIN
.
Si vous utilisez une variable entière, qui a un moment dépasse le plus grand entier PHP_INT_MAX
, elle sera convertie en flottant 😉.
Si vous faites un var_dump
d'un entier, il vous retourne le type int
.
Si vous faites un gettype
d'un entier, il vous retourne le type integer
. Le type integer
n'est plus dans la liste des types PHP de la documentation (septembre 2023).
#3 Les conversions des entiers vers d'autres types PHP
Vous pouvez convertir un entier en booléen ou en flottant en le faisant précéder d'un opérateur de conversion de type. On appelle ça faire un cast. On fera (bool)0
pour avoir un booléen qui vaut false
ou bien (bool)1
pour avoir un booléen qui vaut true
. Tous les entiers différents de zéro donneront un booléen qui vaudra true
par exemple (bool)10
.