Strings são sequências de caracteres e um dos tipos de dados mais utilizados em PHP. Nesta aula, vamos explorar as principais formas de trabalhar com strings, desde a declaração até funções avançadas de manipulação. Compreender as nuances entre aspas simples e duplas, interpolação, Heredoc e Nowdoc é fundamental para escrever código PHP eficiente e legível.

Além disso, veremos funções built-in que facilitam a busca, substituição, formatação e validação de strings. Ao final, você será capaz de manipular textos com confiança em seus projetos.

Aspas simples vs duplas

Em PHP, strings podem ser delimitadas por aspas simples (') ou duplas ("). A principal diferença está no tratamento de variáveis e caracteres de escape. Com aspas simples, o PHP trata o texto literalmente, sem expandir variáveis ou interpretar sequências de escape especiais (exceto \' e \\). Já com aspas duplas, variáveis são interpoladas e sequências como \n (nova linha) e \t (tab) são processadas.

Exemplo de código:

<?php
$nome = "Maria";
echo 'Olá, $nome!\n';   // Imprime: Olá, $nome!\n
echo "Olá, $nome!\n";   // Imprime: Olá, Maria! (com quebra de linha)
?>

Na prática, aspas simples são mais rápidas e seguras quando não há necessidade de interpolação. Use aspas duplas quando precisar incluir variáveis ou caracteres especiais.

Interpolação

Interpolação é o processo de substituir variáveis dentro de uma string delimitada por aspas duplas ou pelo operador Heredoc. O PHP reconhece variáveis simples ($var), arrays ($arr['chave']) e objetos ($obj->prop). Para evitar ambiguidades, use chaves: {$var} ou {$arr['chave']}.

Exemplo de código:

<?php
$preco = 29.90;
$produto = "camiseta";
echo "O preço da $produto é R\$ {$preco}."; // Imprime: O preço da camiseta é R$ 29.90.
?>

Interpolação é útil para construir mensagens dinâmicas, mas tome cuidado com expressões complexas; prefira a concatenação com o operador ponto (.) para maior clareza.

Heredoc e Nowdoc

Heredoc e Nowdoc são sintaxes alternativas para strings multilinhas, mantendo a formatação. Heredoc (<<

Exemplo de Heredoc:

<?php
$nome = "João";
$texto = <<<FIM
Olá, $nome!
Esta é uma string multilinha.
FIM;
echo $texto;
?>

Exemplo de Nowdoc:

<?php
$texto = <<<'FIM'
Isso é literal: $nome não será expandido.
FIM;
echo $texto;
?>

Use Heredoc para gerar HTML ou SQL com variáveis, e Nowdoc para templates que não devem ser interpretados.

Funções essenciais de string

O PHP oferece centenas de funções para strings. Aqui estão as mais comuns:

  • strlen() – retorna o comprimento da string.
  • strpos() – encontra a posição da primeira ocorrência de uma substring.
  • substr() – extrai parte da string.
  • str_replace() – substitui ocorrências de uma substring.
  • strtolower() / strtoupper() – converte para minúsculas/maiúsculas.
  • trim() – remove espaços do início e fim.
  • explode() / implode() – divide/une strings com delimitador.
  • htmlspecialchars() – converte caracteres especiais HTML para entidades.

Exemplo de código:

<?php
$texto = "  Olá, Mundo!  ";
echo strlen($texto); // 15 (com espaços)
echo strpos($texto, "Mundo"); // 7
echo substr($texto, 2, 4); // "Olá"
echo str_replace("Mundo", "PHP", $texto); // "  Olá, PHP!  "
echo trim($texto); // "Olá, Mundo!"
?>

Essas funções são fundamentais para validação, formatação e processamento de textos.

Boas práticas

Evite usar aspas duplas desnecessariamente; prefira aspas simples para literais. Use interpolação com moderação e sempre que possível utilize funções como htmlspecialchars() para evitar XSS ao exibir dados do usuário. Para strings longas, considere Heredoc para legibilidade.

Referências

Exercícios

  1. Crie uma variável $nome com seu nome e exiba uma saudação usando aspas duplas e interpolação.

    ✓ Resposta:
    <?php
    $nome = "João";
    echo "Olá, $nome! Bem-vindo.";
    ?>
  2. Use strlen() e strpos() para verificar se a palavra "PHP" está presente na string "Aprendendo PHP agora" e exibir sua posição.

    ✓ Resposta:
    <?php
    $frase = "Aprendendo PHP agora";
    if (strpos($frase, "PHP") !== false) {
        echo "Encontrado na posição: " . strpos($frase, "PHP");
    } else {
        echo "Não encontrado";
    }
    ?>
  3. Converta a string "Olá Mundo" para minúsculas e depois para maiúsculas, exibindo os resultados.

    ✓ Resposta:
    <?php
    $texto = "Olá Mundo";
    echo strtolower($texto); // olá mundo
    echo "\n";
    echo strtoupper($texto); // OLÁ MUNDO
    ?>
  4. Use explode() para dividir a string "maçã,banana,laranja" por vírgula e exiba o array resultante com print_r().

    ✓ Resposta:
    <?php
    $frutas = "maçã,banana,laranja";
    $array = explode(",", $frutas);
    print_r($array);
    ?>
  5. Crie uma string com Heredoc que contenha uma variável $cidade e exiba o resultado.

    ✓ Resposta:
    <?php
    $cidade = "São Paulo";
    $mensagem = <<<FIM
    Bem-vindo a $cidade!
    Aqui você encontra cultura e lazer.
    FIM;
    echo $mensagem;
    ?>