Sintaxe
Uma
string
literal
pode
ser
especificada
de
três
formas
diferentes
.
Apóstrofos
A
maneira
mais
simples
para
especificar
uma
string
é
delimitá-la
entre
apóstrofos
(
o
caracter
'
)
.
Para
especificar
um
apóstrofo
.
você
precisará
"
escapá-la
"
com
uma
contra
barra
(
\
)
,
como
em
muitas
outras
linguagens
.
Se
uma
contra
barra
precisa
ocorrer
antes
de
um
apóstrofo
ou
no
final
da
string
,
você
precisa
duplicá-la
.
Note
que
se
você
tentar
escapar
qualquer
outro
caracter
,
a
contra
barra
também
será
impressa
!
Então
geralmente
não
é
necessário
escapar
a
própria
contra
barra
.
Nota
:
No
PHP
3
,
um
aviso
com
nível
E_NOTICE
será
emitido
quando
isto
acontecer
.
Nota
:
Diferentemente
das
duas
outras
sintaxes
,
variáveis
não
serão
substituídas
quando
elas
ocorrerem
dentro
de
strings
delimitadas
por
apóstrofes
.
Aspas
Se
a
string
é
delimitada
entre
aspas
(
"
)
,
o
PHP
entende
mais
seqüências
de
escape
para
caracteres
especiais
:
Tabela
7-1
.
Seqüências
de
escape
Seqüência
|
Significado
|
|
fim
de
linha
(
linefeed
ou
LF
ou
0x0A
(10
)
em
ASCII
)
|
|
retorno
de
carro
(
carriage
return
ou
CR
ou
0x0D
(13
)
em
ASCII
)
|
|
TAB
horizontal
(
HT
ou
0x09
(9
)
em
ASCII
)
|
|
contra
barra
ou
barra
invertida
|
|
sinal
de
cifrão
|
|
aspas
|
|
a
seqüência
de
caracteres
batendo
a
expressão
regular
dos
caracteres
em
notação
octal
|
|
a
seqüência
de
caracteres
batendo
a
expressão
regular
de
um
caracter
em
notação
hexadecimal
|
Novamente
se
você
tentar
escapar
qualquer
outro
caracter
,
a
contra
barra
será
impressa
também
!
Mas
o
mais
importante
dado
a
respeito
de
strings
delimitadas
por
aspas
está
no
fato
de
que
nome
de
variáveis
serão
substituídos
.
Veja
interpretação
de
strings
para
detalhes
.
Heredoc
Outra
maneira
para
delimitar
strings
é
utilizando
a
sintaxe
heredoc
(
"
"
)
.
É
informado
um
identificador
depois
de
,
então
a
string
,
e
então
o
mesmo
identificador
para
fechar
a
delimitação
.
O
identificador
de
fechamento
precisa
começar
na
primeira
coluna
da
linha
.
Além
,
o
identificador
utilizado
precisa
seguir
as
mesmas
regras
de
nomeação
que
qualquer
outro
rótulo
no
PHP
:
só
pode
conter
caracteres
alfanuméricos
e
sublinhados
,
e
precisa
começar
com
um
caracter
não
numérico
ou
sublinhado
.
Atenção
|
É
muito
importante
verificar
que
a
linha
do
identificador
de
fechamento
não
contenha
nenhum
outro
caracter
,
exceto
,
possivelmente
um
ponto
e
vírgula
(
;
)
.
O
que
significa
que
o
identificador
não
pode
ser
endentado
,
e
que
não
pode
haver
nenhum
espaço
ou
tabulações
antes
ou
depois
do
ponto
e
vírgula
.
|
Textos
heredoc
se
comportam
como
strings
delimitadas
por
aspas
,
com
apenas
uma
diferença
.
Você
não
precisa
escapar
apóstrofos
e
aspas
em
seus
heredocs
,
mas
você
ainda
pode
continuar
utilizando
os
códigos
de
escape
listados
acima
.
Variáveis
são
substituídas
,
mas
o
mesmo
cuidado
precisa
ser
tomado
quando
expressando
variáveis
complexas
dentro
de
heredocs
assim
como
nas
strings
.
Exemplo
7-2
.
Exemplo
de
delimitação
de
strings
heredoc
?php
$str
=
EOD
Exemplo
de
uma
string
distribuída
em
várias
linhas
utilizando
a
sintaxe
heredoc
.
EOD
;
/
*
Exemplo
mais
complexo
,
com
variáveis
*
/
class
foo
{
var
$foo
;
var
$bar
;
function
foo(
)
{
$this
-
foo
=
'Foo'
;
$this
-
bar
=
array('Bar1'
,
'Bar2'
,
'Bar3')
;
}
}
$foo
=
new
foo()
;
$name
=
'Meu
nome'
;
echo
EOT
Meu
nome
é
"$name
"
.
Eu
estou
imprimindo
$foo
-
foo
.
Agora
,
eu
estou
imprimindo
{
$foo
-
bar[1]
}
.
Isto
deve
imprimir
um
'
A
'
maiúsculo
:
\x41
EOT
;
?
|
|
Nota
:
O
suporte
a
heredoc
foi
acrescentado
no
PHP
4
.
Interpretação
de
variáveis
Quando
uma
string
é
especificada
dentro
de
aspas
ou
heredoc
,
variáveis
são
interpretadas
dentro
delas
.
Há
dois
tipos
de
sintaxe
,
um
simples
e
um
complexo
.
A
sintaxe
simples
é
a
mais
comum
e
conveniente
,
provendo
uma
maneira
de
interpretar
uma
variável
,
um
valor
de
array
ou
uma
propriedade
de
objeto
.
A
sintaxe
completa
foi
introduzida
no
PHP
4
,
e
pode
ser
reconhecida
por
chaves
(
{}
)
envolvendo
a
expressão
.
Sintaxe
simples
Se
um
sinal
de
cifrão
(
$
)
é
encontrado
,
o
interpretador
tentará
obter
tantos
identificadores
quanto
possíveis
para
formar
um
nome
de
variável
válido
.
Envolva
o
nome
da
variável
com
chaves
se
você
deseja
explicitamente
especificar
o
fim
do
nome
.
Similarmente
,
você
também
pode
interpretar
um
índice
de
array
ou
uma
propriedade
de
objeto
.
Com
índices
de
arrays
,
o
colchete
de
fechamento
(
]
)
marca
o
final
do
índice
.
Para
propriedades
de
objetos
se
aplicam
as
mesmas
regras
das
variáveis
comuns
,
embora
não
exista
um
truque
para
as
propriedades
de
objetos
como
para
as
variáveis
.
Para
qualquer
coisa
mais
complexa
,
você
precisa
utilizar
a
sintaxe
complexa
.
Sintaxe
complexa
(
chaves
)
Isto
não
é
chamado
sintaxe
complexa
porque
a
sintaxe
em
si
é
complexa
,
mas
porque
você
pode
incluir
expressões
complexas
desta
maneira
.
De
fato
,
você
pode
incluir
qualquer
valor
no
que
esteja
no
espaço
de
nomes
dentro
de
strings
com
esta
sintaxe
.
Você
simplesmente
escreve
a
expressão
da
mesma
maneira
que
faria
fora
da
string
,
e
então
incluí-la
entre
chaves
.
Desde
que
você
não
pode
escapar
'
{'
,
esta
sintaxe
somente
será
reconhecida
quando
o
$
é
imediatamente
seguido
de
um
{
.
(Utilize
"{\$
"
ou
"\{$
"
para
obter
um
literal
"{$"
)
.
Alguns
exemplos
para
tornar
isso
mais
claro
:
Acesso
a
caracteres
da
string
Caracteres
nas
strings
podem
ser
acessados
apenas
especificando
o
deslocamento
baseado
em
zero
do
caracter
desejado
depois
da
string
dentro
de
chaves
.
Nota
:
Para
manutenção
de
compatibilidade
,
você
ainda
pode
utilizar
colchetes
.
Entretanto
,
esta
sintaxe
for
marcada
como
em
extinção
desde
o
PHP
4
.
Exemplo
7-3
.
Alguns
exemplos
com
strings
?php
/
*
Assimilando
uma
string
.
*
/
$str
=
"
Isto
é
uma
string"
;
/
*
Anexando
a
ela
.
*
/
$str
=
$str
.
"
com
uma
pouco
mais
de
texto"
;
/
*
Outra
maneira
de
acrescentar
,
incluindo
uma
nova
linha
.
*
/
$str
.=
"
e
um
fim
de
linha
no
final
(duh).\n"
;
/
*
Esta
string
será
mostrada
assim
'
p
Número
:
9
/
p
'
*
/
$num
=
9
;
$str
=
"
p
Número
:
$num
/
p
"
;
/
*
Isto
será
apenas
'
p
Número
:
$num
/
p
'
*
/
$num
=
9
;
$str
=
'
p
Número
:
$num
/
p
'
;
/
*
Pega
o
primeiro
caracter
de
uma
string
*
/
$str
=
'Isto
é
um
teste
.'
;
$first
=
$str{0}
;
/
*
Pega
o
último
caracter
da
string
.
*
/
$str
=
'Isto
ainda
é
um
teste
.'
;
$last
=
$str{strlen($str)-1}
;
?
|
|
Funções
úteis
Strings
podem
ser
concatenados
utilizando
o
operador
'
.
'
(ponto
)
.
Note
que
o
operador
'
+
'
(adição
)
não
funciona
para
isso
.
Veja
operadores
de
string
para
mais
informações
.
Há
uma
grande
quantidade
de
funções
úteis
para
modificação
de
strings
.
Veja
a
seção
de
funções
de
string
para
funções
gerais
e
funções
de
expressões
regulares
para
busca
e
substituição
avançada
.
(
em
dois
sabores
:
Perl
e
POSIX
estendido
)
.
Há
também
funções
para
strings
URL
e
funções
para
criptografia
e
descriptografia
de
strings
(
mcrypt
e
mhash
)
.
Finalmente
,
se
você
ainda
não
encontrar
o
que
está
procurando
,
veja
também
as
funções
de
tipos
de
caracteres
.
Conversão
de
strings
Quando
uma
string
é
avaliada
como
um
valor
numérico
,
o
valor
resultante
e
o
tipo
é
determinado
como
segue
.
A
string
será
avaliada
como
um
ponto
flutuante
se
conter
qualquer
um
dos
caracteres
'
.'
,
'e'
,
ou
'E
'
.
Em
outros
casos
,
ela
será
avaliada
como
um
inteiro
.
O
valor
é
obtido
da
porção
inicial
da
string
.
Se
a
string
começa
com
dados
numéricos
válidos
,
esse
será
o
valor
utilizado
.
Em
outro
caso
,
o
valor
será
0
(
zero
)
.
Dados
numéricos
válidos
são
:
um
sinal
opcional
,
seguido
por
um
ou
mais
dígitos
(
opcionalmente
contendo
um
ponto
decimal
)
,
seguido
de
um
expoente
,
também
opcional
.
O
expoente
é
um
'
e
'
ou
'E
'
seguido
de
um
ou
mais
dígitos
.
Para
mais
informações
sobre
esta
conversão
,
veja
página
do
manual
UNIX
de
strtod(
3
)
.
Se
você
deseja
testar
qualquer
um
dos
exemplo
dessa
seção
,
você
pode
copiar
e
colar
os
exemplos
e
inserir
as
linhas
seguintes
para
ver
por
si
mesmo
como
isso
funciona
.