Integer es uno de los tipos escalares incorporados en PHP. Un número entero, sin un punto decimal en el literal, es del tipo «int» en PHP. Un número entero se puede representar en notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2).

Para usar la notación octal, un número va precedido de «0o» o «0O» (PHP 8.1.0 y anteriores). A partir de PHP 8.1.0, un número con el prefijo «0» y sin punto decimal es un número octal.

Para usar la notación hexadecimal, preceda el número con «0x». Para usar la notación binaria, preceda el número con «0b».

Ejemplo

<?php
   $a = 1234; 
   echo "1234 is an Integer in decimal notation: $a\n";

   $b = 0123; 
   echo "0o123 is an integer in Octal notation: $b\n";

   $c = 0x1A; 
   echo "0xaA is an integer in Hexadecimal notation: $c\n";

   $d = 0b1111;
   echo "0b1111 is an integer in binary notation: $d\n";
?>

Producirá el siguiente resultado:

1234 is an Integer in decimal notation: 1234
0o123 is an integer in Octal notation: 83
0xaA is an integer in Hexadecimal notation: 26
0b1111 is an integer in binary notation: 15

PHP 7.4.0 en adelante, los literales enteros pueden contener guiones bajos (_) como separadores entre dígitos, para una mejor legibilidad de los literales. Estos guiones bajos son eliminados por el escáner de PHP.

Ejemplo

<?php
   $a = 1_234_567; 
   echo "1_234_567 is an Integer with _ as separator: $a\n";
?>

Producirá el siguiente resultado:

1_234_567 is an Integer with _ as separator: 1234567

PHP no soporta enteros sin signo. El tamaño de un int depende de la plataforma. En los sistemas de 32 bits, el valor máximo es de unos dos mil millones. Las plataformas de 64 bits suelen tener un valor máximo de aproximadamente 9E18.

El tamaño de int se puede determinar mediante la PHP_INT_SIZE constante, el valor máximo mediante la PHP_INT_MAX constante y el valor mínimo mediante la PHP_INT_MIN constante.

Si un número entero está más allá de los límites del tipo int, o cualquier operación da como resultado un número más allá de los límites del tipo int, se interpretará como un float en su lugar.

Ejemplo

<?php
   $x = 1000000;
   $y =  50000000000000 * $x;
   var_dump($y); 
?>

Producirá el siguiente resultado:

float(5.0E+19)

PHP no tiene ningún operador para la división de enteros. Por lo tanto, una operación de división entre un entero y un float siempre da como resultado float. Para obtener la división integral, puede usar la función incorporada intval().

Ejemplo

<?php
   $x = 10;
   $y = 3.5;
   $z = $x/$y;
   var_dump ($z);
   $z = intdiv($x, $y);
   var_dump ($z);
?>

Producirá el siguiente resultado:

float(2.857142857142857)
int(3)