W3docs

PHP String

Aprenda como strings funcionam em PHP - criação, aspas simples vs duplas, heredoc/nowdoc, sequências de escape, concatenação e as funções de string mais utilizadas.

Uma string em PHP é uma sequência de caracteres - texto como um nome, uma frase ou um documento HTML inteiro. Strings são um dos tipos de dados mais utilizados em PHP, e a linguagem inclui uma grande biblioteca de funções para pesquisar, substituir, formatar e transformá-las.

Esta página aborda como criar strings, a diferença entre aspas simples e duplas, sequências de escape, como juntar strings e as funções de string que você usará com mais frequência.

Criando uma string

Você pode escrever um literal string usando aspas simples (') ou aspas duplas ("):

<?php
$greeting = 'Hello';
$name     = "World";

echo $greeting; // Hello
?>

Para textos mais longos ou complexos, PHP também oferece a sintaxe heredoc e nowdoc, descritas abaixo.

Aspas simples vs. aspas duplas

Esta é a distinção mais importante a aprender logo no início. Strings entre aspas duplas interpretam variáveis e sequências de escape; strings entre aspas simples não.

<?php
$name = "Alice";

echo "Hello, $name\n"; // Hello, Alice  (then a newline)
echo 'Hello, $name\n'; // Hello, $name\n  (printed literally)
?>

Na versão com aspas duplas, $name é substituído pelo seu valor e \n se torna uma quebra de linha real. Na versão com aspas simples, ambos são exibidos exatamente como digitados.

Aspas simples são ligeiramente mais rápidas e seguras quando você não deseja interpolação, portanto use-as para literais simples e mude para aspas duplas apenas quando precisar de uma variável ou sequência de escape dentro da string.

Interpolação com chaves

Quando uma variável é seguida por caracteres que podem fazer parte do seu nome, envolva-a em {} para que o PHP saiba onde o nome termina:

<?php
$fruit = "apple";
echo "I ate two {$fruit}s\n"; // I ate two apples
?>

Sequências de escape

As sequências de escape só têm significado dentro de strings com aspas duplas (e heredoc):

SequênciaSignificado
\nNova linha
\tTabulação
\\Barra invertida
\"Aspas duplas
\$Cifrão (impede a interpolação)
<?php
echo "Line one\nLine two\n";
echo "Price: \$10\n"; // Price: $10
?>

Heredoc e nowdoc

Para texto de múltiplas linhas, heredoc se comporta como uma string com aspas duplas (variáveis são interpretadas) e nowdoc se comporta como uma string com aspas simples (nada é interpretado).

<?php
$name = "Sam";

// Heredoc - interpolates $name
echo <<<EOT
Dear $name,
Welcome aboard!
EOT;

echo "\n---\n";

// Nowdoc - prints $name literally
echo <<<'EOT'
Dear $name,
This is shown verbatim.
EOT;
?>

O identificador de fechamento (EOT aqui) deve começar no início de uma linha.

Concatenação

Una strings com o operador ponto (.). O operador .= acrescenta ao final de uma string existente:

<?php
$first = "John";
$last  = "Doe";

$full = $first . " " . $last;
echo $full . "\n"; // John Doe

$message = "Hello";
$message .= ", world!";
echo $message . "\n"; // Hello, world!
?>

Veja Operadores PHP para a lista completa de operadores de string e aritméticos.

Funções de string mais comuns

A biblioteca padrão do PHP inclui dezenas de funções de string. Estas são as que você mais usará:

<?php
$text = "Hello, World";

echo strlen($text) . "\n";              // 12  - length in bytes
echo strtoupper($text) . "\n";          // HELLO, WORLD
echo strtolower($text) . "\n";          // hello, world
echo str_replace("World", "PHP", $text) . "\n"; // Hello, PHP
echo strpos($text, "World") . "\n";     // 7  - index of first match
echo substr($text, 0, 5) . "\n";        // Hello
echo trim("  padded  ") . "|\n";        // padded|
?>
FunçãoO que faz
strlen()Retorna o comprimento da string
strtoupper() / strtolower()Altera a capitalização
str_replace()Substitui todas as ocorrências de uma substring
strpos()Encontra a posição de uma substring (retorna false se não encontrada)
substr()Extrai parte de uma string
trim()Remove espaços em branco de ambas as extremidades
explode()Divide uma string em um array
implode()Une um array em uma string

Formatação com sprintf()

Quando você precisa de controle preciso sobre como os valores são inseridos em uma string - preenchimento, formatação de números, alinhamento - use sprintf(). Ele retorna uma string formatada (e printf() a imprime diretamente):

<?php
$name  = "Alice";
$score = 92.5;

$line = sprintf("%s scored %.1f%%", $name, $score);
echo $line . "\n"; // Alice scored 92.5%
?>

O marcador %s insere uma string, %d um inteiro e %.1f um float arredondado para uma casa decimal.

Acessando caracteres individuais

Uma string pode ser indexada como um array, começando em 0:

<?php
$word = "PHP";
echo $word[0] . "\n"; // P
echo $word[2] . "\n"; // P
?>

O que ver a seguir

  • Strings em PHP - um tutorial mais aprofundado sobre como trabalhar com texto em PHP.
  • Tipos de Dados em PHP - como strings se encaixam junto a inteiros, floats, arrays e mais.
  • Funções PHP - escreva suas próprias funções reutilizáveis.

Prática

Prática
Em PHP, qual das seguintes funções pode ser usada para retornar uma string formatada?
Em PHP, qual das seguintes funções pode ser usada para retornar uma string formatada?
Was this page helpful?