W3docs

Strings em PHP: Um Guia Completo

Mergulhe fundo no mundo das strings em PHP: criação, aspas simples e duplas, concatenação, funções integradas e sintaxes Heredoc e Nowdoc.

Uma string é uma sequência de caracteres usada para armazenar e manipular texto — nomes, mensagens, HTML, JSON, conteúdo de arquivos e muito mais. As strings são um dos tipos de dados fundamentais do PHP, e quase todo programa PHP as utiliza. Este guia aborda como criar strings, a diferença crucial entre aspas simples e duplas, concatenação, acesso a caracteres individuais, as funções integradas mais úteis, sequências de escape e as sintaxes multilinha Heredoc e Nowdoc — com exemplos executáveis ao longo do texto.

O Que É uma String em PHP?

Uma string é texto envolvido em aspas e armazenado em uma variável. O PHP oferece quatro maneiras de escrever uma string: aspas simples, aspas duplas, Heredoc e Nowdoc. Os dois estilos de aspas são os mais utilizados:

<?php
$single = 'Hello World';
$double = "Hello World";

echo $single; // Hello World
echo "\n";
echo $double; // Hello World

As strings não têm limite de comprimento fixo além da memória disponível, portanto uma string pode conter um único caractere ou um documento inteiro.

Aspas Simples vs. Aspas Duplas

Esta é a distinção mais importante a aprender cedo, pois escolher o estilo de aspas errado é uma fonte comum de bugs. Aspas duplas interpretam sequências de escape e interpolam variáveis; aspas simples tratam quase tudo literalmente.

<?php
$name = 'Alice';

echo "Hello $name\n"; // Hello Alice  (variable + newline parsed)
echo 'Hello $name\n'; // Hello $name\n  (printed literally)

Quando a variável está adjacente a outros caracteres, envolva-a em chaves para que o PHP saiba onde o nome termina:

<?php
$item = 'book';

echo "I bought 3 {$item}s\n"; // I bought 3 books

As aspas simples são marginalmente mais rápidas e seguras quando não é necessária interpolação — prefira-as para texto fixo. Use aspas duplas (ou Heredoc) quando precisar incorporar variáveis ou sequências de escape.

Concatenação de Strings

Unir strings em uma só é chamado de concatenação. O PHP usa o operador ponto (.), e .= acrescenta ao final de uma string existente:

<?php
$first = 'Hello';
$last  = 'World';

$greeting = $first . ' ' . $last;
echo $greeting; // Hello World

$greeting .= '!';
echo "\n" . $greeting; // Hello World!

Note que o PHP usa . para concatenação, não + — usar + em duas strings tenta uma adição numérica e quase nunca é o que você deseja.

Acessando Caracteres

Uma string se comporta como um array de caracteres. Você pode ler qualquer caractere pelo seu índice com base zero usando colchetes:

<?php
$word = 'PHP';

echo $word[0];  // P
echo $word[2];  // P
echo $word[-1]; // P  (negative index counts from the end)

Para obter o comprimento da string, use strlen:

<?php
echo strlen('Hello World'); // 11 (the space counts)

Funções de String Mais Comuns

O PHP possui uma rica biblioteca de funções de string. Estas são as que você usará com mais frequência, cada uma com link para um capítulo dedicado:

FunçãoFinalidade
strlenComprimento de uma string (em bytes)
strposPosição da primeira ocorrência de uma substring
str_replaceSubstituir todas as ocorrências de uma substring
strtoupper / strtolowerAlterar capitalização
substrExtrair parte de uma string
trimRemover espaços em branco das extremidades
explode / implodeConverter entre strings e arrays
sprintfFormatar uma string a partir de um modelo

Um rápido exemplo:

<?php
$text = '  The quick brown fox  ';

echo strlen($text);                  // 23
echo "\n";
echo strpos($text, 'quick');         // 6
echo "\n";
echo str_replace('quick', 'slow', trim($text)); // The slow brown fox
echo "\n";
echo strtoupper(trim($text));        // THE QUICK BROWN FOX
echo "\n";
echo substr(trim($text), 0, 3);      // The

sprintf constrói uma string a partir de um modelo, o que é útil para números e preenchimento:

<?php
$price = 9.5;
echo sprintf('Total: $%.2f', $price); // Total: $9.50

Trabalhando com Unicode

Funções padrão como strlen e strpos contam bytes, não caracteres. Para texto com letras acentuadas, emoji ou scripts não latinos, use os equivalentes multibyte mb_* da extensão mbstring para que os caracteres multibyte sejam contados corretamente:

<?php
$word = 'café';

echo strlen($word);    // 5  (é is 2 bytes in UTF-8)
echo "\n";
echo mb_strlen($word); // 4  (correct character count)

Sequências de Escape

Dentro de strings com aspas duplas, uma barra invertida inicia uma sequência de escape — uma forma de escrever caracteres difíceis de digitar ou que de outra forma seriam interpretados. As mais comuns:

SequênciaSignificado
\nNova linha
\tTabulação
\"Aspas duplas literais
\\Barra invertida literal
\$Sinal de dólar literal (suprime interpolação)
<?php
echo "Line 1\nLine 2";       // prints on two lines
echo "\n";
echo "Price: \$5";           // Price: $5
echo "\n";
echo "She said \"hello\"";   // She said "hello"

Strings com aspas simples reconhecem apenas \' (uma aspas literal) e \\; todo o resto, incluindo \n, é impresso literalmente.

Heredoc e Nowdoc

Quando você precisa de uma string longa e multilinha, Heredoc e Nowdoc são mais limpos do que escapar quebras de linha manualmente.

Heredoc se comporta como uma string com aspas duplas: as variáveis são interpoladas e as sequências de escape funcionam. Abra-o com <<< seguido de um identificador, e feche-o com esse mesmo identificador em sua própria linha:

<?php
$name = 'Alice';

$message = <<<EOT
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear Alice,
// Welcome aboard!

Nowdoc se comporta como uma string com aspas simples — sem interpolação, sem interpretação de escape. A única diferença na sintaxe é que o identificador de abertura é envolvido em aspas simples:

<?php
$name = 'Alice';

$message = <<<'EOT'
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear $name,
// Welcome aboard!

Use Heredoc para saída com modelos (e-mails, blocos HTML) e Nowdoc quando quiser que o texto permaneça exatamente como escrito.

Resumo

As strings em PHP são a base do trabalho com texto. Os pontos essenciais a lembrar:

  • Use aspas simples para texto literal e aspas duplas (ou Heredoc) quando precisar de interpolação de variáveis ou sequências de escape.
  • Concatene com o operador ., não +.
  • Recorra a funções integradas como strlen, substr, str_replace e explode em vez de reinventá-las.
  • Use as funções mb_* sempre que o texto puder conter caracteres não ASCII.

A seguir, aprenda a exibir strings e outros valores com echo e print, ou explore os números e arrays do PHP.

Prática

Prática
Em PHP, quais das afirmações a seguir sobre strings estão corretas?
Em PHP, quais das afirmações a seguir sobre strings estão corretas?
Was this page helpful?