Skip to main content

Les entiers 

Il représente les nombres entiers signées ( ensemble mathématique ℤ ) et peuvent être exprimé dans plusieurs bases.

Sans précision c'est la base décimale usuelle qui est utilisée, avec le préfixe 0x c'est la base hexadécimale qui est prise en compte. Les nombres en octal sont préfixés par un zéro non significatif , ou à partir de PHP 8.1 par un zéro suivi d'un O ( 0o ou 0O ). Enfin le binaire est désigné grâce à 0b.

 

Exemple :

123              // base 10 classique
0x1A            // base 16 (hexadécimal)
0b0011100  // base 2 (binaire)
1_234_567  // Base 10 (notation php   7.4)
0123           // Base 8 (Octal)
0o123         // Base 8 (Octal) à partir de php 8.1
0O123         // Base 8 (Octal) à partir de php 8.1

 

La valeur maximale des entiers dépend de la plateforme. Les constantes PHP_IN_MIN, PHP_INT_MAX et PHP_INT_SIZE permettent de connaître respectivement le nombre entier minimum, le maximum et la taille des entiers.

Le programme suivant vous les affichera pour votre plateforme, attention elles peuvent être différents entre les environnements de développement et de production.

<?php
  print PHP_INT_MIN."\n";
  print PHP_INT_MAX."\n";
  print PHP_INT_SIZE."\n";
?>

 

En cas de dépassement de capacité l'entier sera converti en nombre décimal.

Exemple :

<?php
$test = PHP_INT_MAX ;
print "$test\n";
var_dump($test);

$test += 1 ;
print "$test\n";
var_dump($test);
?>

 

Enfin on peut convertir un autre en format en entier en utilisant le transtypage  et les mot clés int ou integer ou grâce à la fonction intvat()

Exemple :

echo (int) ( (0.1+0.7) * 10 ); 
echo (integer) ( (0.1+0.7) * 10 ); 
echo intval( (0.1+0.7) * 10 ); 

 

Les chaînes seront converties en entier uniquement si possible, c'est à dire si la chaîne représente un nombre. Dans le cas contraire ce sera zéro.

 

Exemple :

echo (int) ( (0.1+0.7) * 10 ); 
echo (integer) ( (0.1+0.7) * 10 ); 
echo intval( (0.1+0.7) * 10 ); 

Enfin false et NULL sont converti en 0 et true est convertie en 1.