Inteiros
Um
inteiro
é
um
número
do
conjunto
Z
=
{
...
,
-2
,
-1
,
0
,
1
,
2
,
..
.
}
.
Veja
também
:
Inteiros
de
tamanho
arbitrário
e
Números
de
ponto
flutuante
Sintaxe
Inteiros
podem
ser
especificados
em
notação
decimal
(
base
10)
,
hexadecimal
(base
16
)
ou
octal
(base
8)
,
opcionalmente
precedido
de
sinal
(
-
ou
+
)
.
Para
usar
a
notação
octal
,
você
precisa
preceder
o
número
com
um
0
(
zero
)
.
Para
utilizar
a
notação
hexadecimal
,
preceda
número
com
0x
.
Exemplo
7-1
.
Literais
inteiras
$a
=
1234
;
#
número
decimal
$a
=
-123
;
#
um
número
negativo
$a
=
0123
;
#
número
octal
(equivalente
a
83
em
decimal
)
$a
=
0x1A
;
#
número
hexadecimal
(equivalente
a
26
em
decimal
)
|
|
O tamanho de um inteiro é dependente de plataforma, sendo um
numero aproximado a 2 bilhões o valor mais comum (número de 32
bits com sinal). O PHP não suporta inteiros não sinalizados.
Overflow
de
inteiros
Se
você
especifica
um
número
além
dos
limites
do
tipo
inteiro
,
ele
será
interpretado
como
um
ponto
flutuante
.
Assim
,
se
você
realizar
uma
operação
que
resulte
em
um
número
além
dos
limites
do
tipo
inteiro
,
um
ponto
flutuante
será
retornado
também
.
Atenção
|
Infelizmente
,
há
um
bug
no
PHP
que
faz
que
ele
nem
sempre
trabalhe
corretamente
quando
há
números
negativos
envolvidos
.
Por
exemplo
,
quando
você
faz
-50000
*
$milhao
,
o
resultado
será
-429496728
.
Entretanto
,
quando
ambos
os
operadores
são
positivos
,
isso
não
ocorre
.
Isto
foi
resolvido
no
PHP
4.1.0
.
|
Não
há
operador
de
divisão
inteira
no
PHP
.
1
/
2
retorna
o
ponto
flutuante
0.5
.
Convertendo
para
inteiro
Para
converter
explicitamente
um
valor
para
inteiro
,
utilize-se
dos
modificadores
(
int
)
ou
(integer
)
.
Entretanto
,
na
maioria
dos
casos
,
você
não
precisa
utilizar
o
modificador
,
desde
que
qualquer
valor
será
automaticamente
convertido
se
um
operador
,
função
ou
estrutura
de
controle
requerer
um
argumento
inteiro
.
Veja
também
Manipulação
de
tipos
.
FALSE
será
retornado
como
0
(
zero)
,
e
TRUE
como
1
(um
)
.
Quando
convertendo
de
números
de
ponto
flutuante
para
inteiros
,
o
número
será
truncado
.
Se
o
número
convertido
estiver
além
dos
limites
de
um
inteiro
(
usualmente
+
/
-
2.15e+9
=
2^31
)
,
o
resultado
é
indefinido
,
mesmo
porque
o
ponto
flutuante
não
tem
a
mesma
precisão
para
fornecer
um
resultado
inteiro
exato
.
Não
se
preocupe
,
pois
nenhum
aviso
será
emitido
neste
caso
!
De
outros
tipos
Cuidado
|
O
comportamento
da
conversão
de
um
inteiro
é
indefinido
de
outros
tipos
.
Atualmente
,
o
comportamento
é
o
mesmo
como
se
primeiro
o
valor
fosse
convertido
para
booleano
.
Entretanto
,
não
confie
neste
comportamento
,
pois
ele
pode
mudar
sem
aviso
.
|