Menu

Strings em PHP: aspas, concatenação e interpolação

Junte strings em PHP com o operador ponto ("Hello, " . $name) ou coloque variáveis direto entre aspas duplas ("Hello, $name"). Aspas simples imprimem o texto como está. Veja concatenação, .=, interpolação de arrays e objetos e como mudar maiúsculas com strtoupper, strtolower, ucfirst e ucwords.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

Uma string PHP é um texto entre aspas simples ou duplas. Junte strings com o operador ponto, $first . ' ' . $last, ou coloque uma variável direto entre aspas duplas: "Hello, $name".

O ponto junta quaisquer dois valores numa nova string. Números são convertidos para você, então "Total: " . 42 é "Total: 42".

Aspas simples ou duplas

Aspas duplas fazem duas coisas a mais: trocam variáveis pelos valores e transformam sequências de escape como \n (quebra de linha) e \t (tabulação) nos caracteres que representam. Aspas simples imprimem o texto exatamente como está escrito, exceto \' e \\.

Use aspas simples para texto fixo e aspas duplas quando quiser uma variável ou um \n dentro. A diferença de velocidade entre elas é pequena demais para medir, então escolha a que deixa a linha mais fácil de ler.

Concatenar strings com . e .=

.= acrescenta ao fim de uma variável string. É o jeito comum de montar texto num loop, por exemplo um trecho de HTML. Rode este bloco e o editor abre a aba Page, que mostra a lista renderizada.

A precedência importa quando você mistura . com aritmética. Desde o PHP 8, + e - têm prioridade sobre ., então "Sum: " . 2 + 3 é "Sum: 5". Parênteses deixam isso óbvio para quem ler depois: "Sum: " . (2 + 3).

Colocar variáveis, arrays e objetos dentro de uma string

Uma variável simples funciona sozinha dentro de aspas duplas. Para um elemento de array, uma cadeia de propriedades de objeto ou uma chamada de método, coloque a expressão entre chaves. As chaves também separam uma variável das letras que vêm logo depois dela.

Métodos funcionam dentro das chaves, funções comuns não: a última linha imprime as chaves e o nome da função em volta do valor de $fruit. Chame a função antes da string, ou use sprintf quando a string tiver muitos valores.

Mudar maiúsculas e minúsculas: strtoupper, strtolower, ucfirst, ucwords

Essas funções trabalham byte a byte e só mudam as letras de a a z. Para texto com acentos, cirílico ou grego, use as versões multibyte, que entendem UTF-8:

Ler caracteres individuais e repetir strings

Uma string pode ser indexada como um array. Offsets negativos contam a partir do fim. Para contar caracteres, veja strlen.

Erro comum: + em vez de .

No JavaScript, + junta strings. No PHP, + é sempre aritmética: strings numéricas são somadas como números, e texto que não é número gera um erro.

Se aparecer um número onde você esperava texto juntado, ou Unsupported operand types: string + string, procure um + que deveria ser um ..

Perguntas frequentes

Como concatenar strings em PHP?

Use o operador ponto: $full = $first . ' ' . $last;. Para acrescentar a uma string existente, use .=: $html .= '<li>Item</li>';. O operador + é para números, e "Hello" + "World" lança um TypeError no PHP 8.

Qual a diferença entre aspas simples e duplas no PHP?

Aspas duplas substituem variáveis e sequências de escape: "Hi $name\n" imprime o valor de $name e uma quebra de linha. Aspas simples imprimem quase tudo como está escrito: 'Hi $name\n' imprime o cifrão, o nome e uma barra invertida seguida de n. Dentro de aspas simples, só \' e \\ são escapes.

Como coloco um valor de array dentro de uma string PHP?

Coloque-o entre chaves: "Hello, {$user['name']}". O mesmo vale para propriedades de objetos e chamadas de métodos: "{$user->getName()}". Sem chaves, "$user[name]" (sem aspas em volta da chave) também funciona para uma chave simples.

Como deixo uma string em maiúsculas ou minúsculas no PHP?

strtoupper('php') retorna PHP, strtolower('PHP') retorna php, ucfirst('hello') deixa a primeira letra maiúscula e ucwords('hello world') deixa maiúscula a primeira letra de cada palavra. Para texto com acentos ou letras não latinas, use mb_strtoupper() e mb_strtolower().

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR