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ência | Significado |
|---|---|
\n | Nova linha |
\t | Tabulaçã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ção | O 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.