Los enteros pueden ser especificados en notación decimal
(base-10), hexadecimal (base-16) u octal (base-8), opcionalmente
precedidos por un signo (- o +).
Si usa la notación octal, debe preceder el número
con un 0 (cero), para usar la notación
hexadecimal, preceda el número con 0x.
Ejemplo 11-1. Literales tipo entero
<?php $a = 1234; // numero decimal $a = -123; // un numero negativo $a = 0123; // numero octal (equivalente al 83 decimal) $a = 0x1A; // numero hexadecimal (equivalente al 26 decimal) ?>
Formalmente, la posible estructura para literales enteros es:
El tamaño de un entero es dependiente de la plataforma,
aunque un valor máximo de aproximadamente dos billones es
el valor usual (lo que es un valor de 32 bits con signo). PHP no
soporta enteros sin signo.
Aviso
Si un dÃgito inválido es pasado a un entero octal
(p.ej. 8 o 9), el resto del número es ignorado.
Si especifica un número más allá de los
lÃmites del tipo integer, será
interpretado en su lugar como un float. Asimismo, si
realiza una operación que resulta en un número
más allá de los lÃmites del tipo
integer, un float es retornado en su
lugar.
Desafortunadamente, habÃa un fallo en PHP que provocaba
que esto no siempre funcionara correctamente cuando se
presentaban números negativos. Por ejemplo: cuando hace
-50000 * $millon, el resultado será
-429496728. Sin embargo, cuando ambos
operandos son positivos no se presenta ningún problema.
Este problema fue resuelto en PHP 4.1.0.
No hay un operador de división de enteros en PHP.
1/2 produce el float0.5. Puede moldear el valor a un entero para
asegurarse de redondearlo hacia abajo, o puede usar la
función round().
Cuando se realizan conversiones desde un flotante a un entero,
el número será redondeado hacia
cero.
Si el flotante se encuentra más allá de los
lÃmites del entero (usualmente +/- 2.15e+9 =
2^31), el resultado es indefinido, ya que el flotante
no tiene suficiente precisión para dar un resultado
entero exacto. No se producirá una advertencia, ¡ni
siquiera una noticia en este caso!
Aviso
Nunca moldee una fracción desconocida a
integer, ya que esto en ocasiones produce
resultados inesperados.
El comportamiento de convertir desde entero no es definido
para otros tipos. Actualmente, el comportamiento es el mismo
que si el valor fuera antes convertido a
booleano. Sin embargo, no
confÃe en este comportamiente, ya que puede ser
modificado sin aviso.
Atención técnica y comercial: (54)-11-5031-1111 las 24 hs. los 365 días del año. ToWebs, (c) 2008
Virtucom Networks S.A Av. Belgrano 1586, piso 10 (C1093AAQ) Cap. Fed. Bs. As, Argentina.