Entenda melhor NOWDOC e HEREDOC no PHP

Nowdoc x Heredoc

As sintaxes HEREDOC e NOWDOC ajudam a escrever blocos de texto extensos sem escapar aspas manualmente. A diferença principal é que HEREDOC interpreta variáveis, enquanto NOWDOC mantém tudo literal.

1. HEREDOC

$nome = 'Ennio';
$mensagem = <<<HTML
<h1>Olá, {$nome}</h1>
<p>Obrigado por acompanhar o blog!</p>
HTML;
  • O identificador (HTML) deve aparecer sozinho na última linha.
  • Pode interpolar variáveis e chamar funções {$this->metodo()}.

2. NOWDOC

$sql = <<<'SQL'
SELECT * FROM users WHERE email = :email AND deleted_at IS NULL;
SQL;
  • Usa aspas simples no identificador.
  • Não expande variáveis, ideal para SQL e scripts shell.

3. Combinação com sprintf

$template = <<<'MD'
## %s

%s
MD;

$conteudo = sprintf($template, 'Checklist', '- Tests\n- Code review');

4. Em versões modernas do PHP

Desde o PHP 7.3 é permitido usar indentação:

$html = <<<HTML
    <div>
        <span>{$nome}</span>
    </div>
HTML;

O interpretador remove o recuo mínimo automaticamente.

5. Quando usar cada um

Situação Sintaxe
Templates com variáveis HEREDOC
Dumps literais, comandos shell, SQL NOWDOC
Configurações compartilhadas HEREDOC com include

Adotar essas sintaxes torna o código mais legível e evita escapes confusos em strings multilinha.

← Voltar para Blog — Artigos sobre PHP, JavaScript e DevOps