Manipulação
de
tipos
O
PHP
não
requer
(
ou
suporta
)
a
definição
de
tipo
explicita
na
declaração
de
variáveis
:
o
tipo
de
uma
variável
é
determinado
pelo
contexto
em
que
a
variável
é
utilizada
.
Isto
significa
que
,
se
você
assimila
um
valor
string
para
a
variável
var
,
var
se
torna
uma
string
.
Se
você
então
assimila
um
valor
inteiro
para
var
,
ela
se
torna
um
inteiro
.
Um
exemplo
da
conversão
automática
do
PHP
é
o
operador
de
adição
'
+
'
.
Se
qualquer
um
dos
operadores
for
float
,
então
todos
os
operadores
são
avaliados
como
floats
,
e
o
resultado
será
um
float
.
De
outra
forma
,
se
os
operadores
forem
interpretados
como
inteiros
então
o
resultado
será
um
inteiro
.
Note
que
isso
NÃO
muda
os
tipos
dos
operadores
:
apenas
muda
em
como
esses
operadores
são
avaliados
.
Se
os
últimos
dois
exemplos
lhe
parecerem
estranhos
,
veja
Conversão
de
strings
.
Se
você
deseja
forçar
uma
variável
para
ser
avaliada
como
um
certo
tipo
,
veja
a
seção
Moldando
o
tipo
(
casting
)
.
Se
você
deseja
mudar
o
tipo
de
uma
variável
,
veja
settype(
)
.
Se
quiser
testar
qualquer
um
dos
exemplo
desta
seção
,
você
pode
usar
a
função
var_dump(
)
.
Nota
:
O
comportamento
de
uma
conversão
automática
para
array
é
atualmente
indefinida
.
Desde
que
o
PHP
suporta
indexação
de
strings
através
de
offsets
utilizando
a
mesma
sintaxe
da
indexação
de
arrays
,
o
exemplo
acima
nos
deixa
um
problema
:
$a
se
tornou
um
array
sendo
o
primeiro
elemento
"
f"
,
ou
será
que
"f
"
se
tornou
o
primeiro
caracter
da
string
$a
?
Por
essa
razão
,
como
no
PHP
3.0.12
e
PHP
4.0b3-RC4
,
o
resultado
dessa
conversão
automática
é
considerada
como
indefinida
.
Correções
,
entretanto
,
estão
sendo
discutidas
.
Moldando
Tipos
-
Type
Casting
A
moldagem
de
tipos
no
PHP
funciona
como
no
C
:
o
nome
de
um
tipo
desejado
é
escrito
entre
parênteses
antes
da
variável
em
que
se
deseja
a
moldagem
.
As
moldagens
permitidas
são
:
-
(
int)
,
(integer
)
-
molde
para
inteiro
-
(
bool)
,
(boolean
)
-
molde
para
booleano
-
(
float)
,
(double)
,
(real
)
-
molde
para
número
de
ponto
flutuante
-
(
string
)
-
molde
para
string
-
(
array
)
-
molde
para
array
-
(
object
)
-
molde
para
objeto
Nota
:
Em
vez
de
moldar
uma
variável
para
string
,
você
também
pode
circundar
a
variável
entre
aspas
.
Note
que
tabulações
e
espaços
são
permitidos
dentro
dos
parênteses
,
então
o
seguinte
são
funcionalmente
equivalentes
:
Pode
não
ser
tão
óbvio
o
que
exatamente
ocorre
quando
se
molda
entre
certos
tipos
.
Para
mais
informações
,
veja
essas
seções
:
Quando
moldando
ou
forçando
a
conversão
de
um
array
para
string
,
o
resultado
será
a
palavra
Array
.
Quando
moldando
ou
forçando
o
tipo
de
um
objeto
para
string
,
o
resultado
será
a
palavra
Object
.
Quando
moldando
de
uma
variável
escalar
ou
string
para
um
array
,
a
variável
se
torna
o
primeiro
elemento
do
array
:
Quando
moldando
de
uma
variável
escalar
ou
string
para
um
objeto
,
a
variável
se
torna
um
atributo
do
objeto
:
o
nome
do
atributo
se
chamará
'
scalar
'
: