An integer is a number of the set ? = {…, -2, -1, 0, 1, 2, …}.

Syntax

Integers can be specified in decimal (base 10), hexadecimal (base 16), or octal (base 8) notation, optionally preceded by a sign (- or +).

To use octal notation, precede the number with a 0 (zero). To use hexadecimal notation precede the number with 0x.

Example #1 Integer literals

<?php
$a = 1234; // decimal number
$a = -123; // a negative number
$a = 0123; // octal number (equivalent to 83 decimal)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
?>

Formally, the structure for integer literals is:

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal

The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that’s 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18. PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.

WarningIf an invalid digit is given in an octal integer (i.e. 8 or 9), the rest of the number is ignored.

Example #2 Octal weirdness

<?php
var_dump(01090); // 010 octal = 8 decimal
?>

Integer overflow

If PHP encounters a number beyond the bounds of the integer type, it will be interpreted as a float instead. Also, an operation which results in a number beyond the bounds of the integer type will return a float instead.

Example #3 Integer overflow on a 32-bit system

<?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)
?>

Example #4 Integer overflow on a 64-bit system

<?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)
?>

There is no integer division operator in PHP. 1/2 yields the float 0.5. The value can be casted to an integer to round it downwards, or the round() function provides finer control over rounding.

<?php
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
?>

Converting to integer

To explicitly convert a value to integer, use either the (int) or (integer) casts. However, in most cases the cast is not needed, since a value will be automatically converted if an operator, function or control structure requires an integer argument. A value can also be converted to integer with the intval() function.

From booleans

FALSE will yield 0 (zero), and TRUE will yield 1 (one).

From floating point numbers

When converting from float to integer, the number will be rounded towards zero.

If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31 on 32-bit platforms and +/- 9.22e+18 = 2^63 on 64-bit platforms), the result is undefined, since the float doesn’t have enough precision to give an exact integer result. No warning, not even a notice will be issued when this happens!

WarningNever cast an unknown fraction to integer, as this can sometimes lead to unexpected results.

<?php
echo (int) ( (0.1+0.7) * 10 ); // echoes 7!
?>
Apple destrona a Google como la marca más valiosa Apple le arrebató a Google la corona de la marca más valorada en el mundo al encabezar la lista de las 100 mejores marcas de la empresa de análisis de...
Facebook está caido … Algo pasa con Facebook, aunque no se sabe muy bien lo que es. Hace algunas horas que Twitter se está llenando de mensajes de internautas que piden exp...
Modulo Opencart para calculo de precio de envío basado en peso volumétrico Esta extensión le permite ajustar las tarifas de envío avanzadas para su tienda, y se puede calcular por peso dimensional con el Código Postal y el ap...
Mootools 1.4 El equipo de trabajo de Mootools ha liberado una actualización de esta librería desarrollada en Javascript con la que facilitar el desarrollo de una a...
Que es un Alias en la terminologia informatica? El vocablo alias proviene del latín y equivale al término español "otro". Está relacionado con la frase alia nomine cognitu, que significa 'conocido p...
1.200 millones de apps fueron descargadas en la última semana de 2011 El negocio de las apps no decayó a final de año. Del 25 al 31 de diciembre se descargaron en todo el mundo más de 1.200 millones de aplicaciones móvil...
Dell presentó en Costa Rica su tableta-netbook Tiendas Universal introdujo la computadora Inspiron™ Duo Dell , una netbook que también puede ser utilizada como tablet debido al movimiento de su pan...
Empleos Online, tendencias del mercado 2012-2013 Freelancer.com, la plataforma online de contratación de trabajadores independientes, dió a conocer un informe que revela cuáles son los 50 trabajos on...
Skype presenta un traductor universal Skype lanzó un nuevo servicio que podría sin duda cambiar la forma en la que nos comunicamos con otras personas, sin importar el idioma que hablen. ...
Como funciona el DNS o Domain Name Server Los usuarios generalmente no se comunican directamente con el servidor DNS: la resolución de nombres se hace de forma transparente por las aplicacione...