PHP Enteros


Ejemplo

Los enteros en PHP se pueden especificar de forma nativa en base 2 (binario), base 8 (octal), base 10 (decimal) o base 16 (hexadecimal).

$my_decimal = 42;
$my_binary = 0b101010;
$my_octal = 052;
$my_hexadecimal = 0x2a;

echo ($my_binary + $my_octal) / 2;
// Output is always in decimal: 42

Los enteros tienen una longitud de 32 o 64 bits, según la plataforma. La constante PHP_INT_SIZE tiene un tamaño de entero en bytes. PHP_INT_MAX y (desde PHP 7.0) PHP_INT_MIN también están disponibles.

printf("Integers are %d bits long" . PHP_EOL, PHP_INT_SIZE * 8);
printf("They go up to %d" . PHP_EOL, PHP_INT_MAX);

Los valores enteros se crean automáticamente según sea necesario a partir de flotadores, valores booleanos y cadenas. Si se necesita un typecast explícito, se puede hacer con el (int) o (integer) cast:

$my_numeric_string = "123";
var_dump($my_numeric_string);
// Output: string(3) "123"
$my_integer = (int)$my_numeric_string;
var_dump($my_integer);
// Output: int(123)

El desbordamiento de enteros se manejará mediante la conversión a un flotador:

$too_big_integer = PHP_INT_MAX + 7;
var_dump($too_big_integer);
// Output: float(9.2233720368548E+18)

No hay un operador de división de enteros en PHP, pero se puede simular utilizando un lanzamiento implícito, que siempre se "redondea" simplemente descartando la parte flotante. A partir de la versión 7 de PHP, se agregó una función de división entera.

$not_an_integer = 25 / 4;
var_dump($not_an_integer);
// Output: float(6.25)
var_dump((int) (25 / 4)); // (see note below)
// Output: int(6)
var_dump(intdiv(25 / 4)); // as of PHP7
// Output: int(6)

(Tenga en cuenta que los paréntesis adicionales alrededor de (25 / 4) son necesarios porque el (int) cast tiene mayor precedencia que la división)