PHP: Quatro maneiras de definir uma string
O PHP oferece quatro formas diferentes de definir uma string. Confira quais são e como utilizá-las!
por Geison Souza
Em linguagens de programação, quando falamos em "string", estamos nos referindo a uma sequência de caracteres que pode incluir letras, números e símbolos. No PHP, há quatro maneiras de especificar strings, cada uma com características próprias; são elas: aspas simples, aspas duplas, nowdoc e heredoc. Vamos explorar cada uma delas.
Aspas Simples
Aspas simples ('...'
) são a forma mais básica de definir uma string no PHP. Ao utilizar esse formato, o PHP interpreta o conteúdo da string literalmente, sem processar variáveis ou a maioria das sequências de escape. A única exceção são as sequências (\'
) e (\\
).
Se precisar escapar uma aspa simples, insira uma barra invertida antes dela (\'
). Caso precise escapar uma barra invertida, utilize duas barras invertidas consecutivas (\\
).
Exemplo:
Bloco #1echo 'Esta é uma string com aspas simples';
// Esta é uma string com aspas simples
$nome = 'João';
echo 'Meu nome é $nome';
// Meu nome é $nome
echo 'Aspa simples: \'';
// Aspa simples: '
echo 'Barra invertida e aspa simples: \\\'';
// Barra invertida e aspa simples: \'
Se você precisar incluir uma variável em uma string com aspas simples, será necessário concatená-la utilizando o operador de ponto (.
), como mostrado abaixo:
Bloco #2$letra = 'b';
echo 'a ' . $letra . ' c';
// a b c
Aspas Duplas
Aspas duplas ("..."
) são uma alternativa que permite que o PHP interprete variáveis e sequências de escape dentro da string, como quebras de linha (\n
), tabulação (\t
), e outras.
Exemplo:
Bloco #3$nome = "João";
echo "Meu nome é $nome";
// Meu nome é João
echo "LINHA 1\nLINHA 2";
/*
LINHA 1
LINHA 2
*/
Sequências de escape comuns em strings com aspas duplas:
\n
– Nova linha\r
– Retorno de carro\t
– Tabulação\"
– Aspas duplas\$
– Cifrão\\
– Barra invertida\u{}
– Código Unicode (PHP 7.0+)
Se precisar escapar uma aspa dupla, insira uma barra invertida antes dela (\"
). O mesmo vale para o cifrão (\$
). Para escapar uma barra invertida, use duas consecutivas (\\
). Veja o exemplo:
Bloco #4$nome = "João";
echo "Variável com sequência de escape: \$nome";
// Variável com sequência de escape: $nome
echo "Barra invertida e aspa dupla: \\\"";
// Barra invertida e aspa dupla: \"
Você também pode adicionar chaves em torno de variáveis para acessar valores específicos de arrays, por exemplo:
Bloco #5$array = [
1 => "João",
2 => "Maria",
3 => "Carlos",
];
echo "Meu nome é {$array[2]}";
// Meu nome é Maria
Nowdoc
O nowdoc é semelhante às aspas simples, mas em um formato que facilita o uso de strings complexas, especialmente quando você quer evitar a interpretação de variáveis e sequências de escape. Para usar nowdoc, você abre a string com <<<'IDENTIFICADOR'
(com aspas simples ao redor do identificador) e fecha com o mesmo identificador.
Quando você utiliza nowdoc, o PHP trata cada caractere dentro da string exatamente como foi digitado, sem interpretar variáveis ou sequências de escape. Isso significa que você pode inserir aspas simples, duplas ou outros caracteres sem precisar escapá-los.
Exemplo:
Bloco #6$nome = 'João';
echo <<<'STRING'
Esta é uma string nowdoc.
Variáveis como $nome não serão interpretadas.
STRING;
/*
Esta é uma string nowdoc.
Variáveis como $nome não serão interpretadas.
*/
Embora o identificador acima seja "STRING", você pode usar outro nome, desde que contenha apenas caracteres alfanuméricos e sublinhados, e comece com uma letra ou sublinhado.
Strings do tipo nowdoc não processam variáveis. Porém, você pode resolver isso com o uso de funções PHP, como sprintf()
. Confira o exemplo abaixo:
Bloco #7$a = 'João';
$b = 'Maria';
$c = 'Carlos';
$string = <<<'STRING'
Meu nome é %s! Meu nome é %s! Meu nome é %s!
STRING;
echo sprintf($string, $a, $b, $c);
// Meu nome é João! Meu nome é Maria! Meu nome é Carlos!
Heredoc
A heredoc é uma forma eficiente de trabalhar com strings complexas no PHP. Diferente do nowdoc, ela interpreta variáveis e sequências de escape, funcionando de maneira similar às aspas duplas. No entanto, com heredoc, não é necessário escapar as aspas duplas dentro da string. A sintaxe é iniciada com <<<IDENTIFICADOR
(sem aspas) e encerrada com o mesmo identificador.
Exemplo:
Bloco #8$a = 'João';
$b = 'Maria';
echo <<<STRING
Meu nome é $a
Aspa dupla: "
Aspa simples: '
Variável com sequência de escape: \$b
STRING;
/*
Meu nome é João
Aspa dupla: "
Aspa simples: '
Variável com sequência de escape: $b
*/
Assim como no nowdoc, o identificador de uma string heredoc pode ter qualquer nome, desde que siga as regras de nomenclatura do PHP: deve começar com uma letra ou sublinhado, e pode conter apenas caracteres alfanuméricos e sublinhados.