Resumo : neste tutorial, você aprenderá como usar strings PHP heredoc e nowdoc para melhorar a legibilidade do código.
Introdução à string heredoc do PHP
Quando você coloca variáveis em uma string entre aspas duplas , o PHP expandirá os nomes das variáveis. Se uma string contém aspas duplas (“), você precisa escapá-las usando a barra invertida ( \
). Por exemplo:
<?php
$he = 'Bob';
$she = 'Alice';
$text = "$he said, \"PHP is awesome\".
\"Of course.\" $she agreed.";
echo $text;
Linguagem de código: PHP ( php )
Saída:
Bob said, "PHP is awesome".
"Of course." Alice agreed.
Linguagem de código: PHP ( php )
Strings heredoc do PHP se comportam como strings entre aspas duplas, sem aspas duplas. Isso significa que eles não precisam escapar de aspas e expandir variáveis. Por exemplo:
<?php
$he = 'Bob';
$she = 'Alice';
$text = <<<TEXT
$he said "PHP is awesome".
"Of course" $she agreed."
TEXT;
echo $text;
Linguagem de código: PHP ( php )
Sintaxe heredoc do PHP
O seguinte mostra a sintaxe de uma string heredoc:
<?php
$str = <<<IDENTIFIER
place a string here
it can span multiple lines
and include single quote ' and double quotes "
IDENTIFIER;
Linguagem de código: PHP ( php )
Como funciona.
Primeiro, comece com o <<<
operador, um identificador e uma nova linha:
<<<IDENTIFIER
Linguagem de código: PHP ( php )
Segundo, especifique a string, que pode abranger várias linhas e incluir aspas simples (‘) ou aspas duplas (“).
Terceiro, feche a string com o mesmo identificador.
O identificador deve conter apenas caracteres alfanuméricos e sublinhados e começar com um sublinhado ou um caractere que não seja um dígito.
O identificador de fechamento deve seguir estas regras:
- Começa na primeira coluna da linha
- Não contém outros caracteres, exceto um ponto e vírgula (
;
). - O caractere antes e depois do identificador de fechamento deve ser um caractere de nova linha definido pelo sistema operacional local.
O seguinte mostra uma string heredoc inválida porque o caractere anterior não é um caractere de nova linha:
<?php
$str = <<<IDENTIFIER
invalid
IDENTIFIER;
echo $str;
Linguagem de código: PHP ( php )
No entanto, a seguinte string heredoc é válida:
<?php
$str = <<<IDENTIFIER
valid
IDENTIFIER;
echo $str;
Linguagem de código: PHP ( php )
Casos de uso de strings heredoc PHP
Na prática, você usa a sintaxe heredoc para definir uma string que contém aspas simples, aspas duplas ou variáveis. A string heredoc torna a string mais fácil de ler.
Além disso, você pode usar uma string heredoc para gerar HTML dinamicamente. Por exemplo:
<?php
$title = 'My site';
$header = <<<HEADER
<header>
<h1>$title</h1>
</header>
HEADER;
echo $header;
Linguagem de código: PHP ( php )
Sintaxe PHP Nowdoc
Uma string nowdoc é semelhante a uma string heredoc, exceto que não expande as variáveis. Aqui está a sintaxe de uma string nowdoc:
<?php
$str = <<<'IDENTIFIER'
place a string here
it can span multiple lines
and include single quote ' and double quotes "
IDENTIFIER;
Linguagem de código: PHP ( php )
A sintaxe do nowdoc é semelhante à sintaxe do heredoc, exceto que o identificador que segue o operador <<< precisa ser colocado entre aspas simples. O identificador do nowdoc também segue as regras do identificador heredoc.
Resumo
- Strings Heredoc são como strings entre aspas duplas sem escape.
- As strings Nowdoc são como strings entre aspas simples, sem escape.