O PHP oferece algumas formas curtas de escrever código, que podem economizar linhas e aumentar a legibilidade, quando usadas corretamente. Neste post, vamos detalhar todas as principais formas, suas diferenças, limitações e exemplos práticos.
1. <?= ?> — Echo Curto
<?= … ?> é uma abreviação para <?php echo … ?>, útil para imprimir valores diretamente no HTML.
Exemplo:
<?php
$nome = "Kemper";
?>
<p>Olá, <?= $nome ?>!</p>
Equivalente a:
<p>Olá, <?php echo $nome; ?>!</p>
Observação: funciona apenas para imprimir valores, não para executar lógica complexa.
2. Short Tags <? ?>
<? ?> é uma abreviação para <?php ?>. Permite escrever PHP sem digitar php.
Exemplo:
<?
echo "Olá, mundo!";
?>
⚠️ Atenção: depende de short_open_tag = On no php.ini. Não recomendado para produção, pois pode quebrar em servidores com essa configuração desativada.
3. Heredoc e Nowdoc
Permitem declarar strings multilinha de forma mais limpa:
- Heredoc: interpreta variáveis
- Nowdoc: não interpreta variáveis (igual a string simples)
Exemplo Heredoc:
$nome = "Kemper";
echo <<<EOT
Olá $nome,
Bem-vindo ao DevData!
EOT;
Exemplo Nowdoc:
$nome = "Kemper";
echo <<<'EOT'
Olá $nome,
Isso não interpreta variáveis.
EOT;
4. Operadores Ternário e Null Coalescing
Permitem escrever if/else e valores padrão em uma linha.
- Ternário (
?:):
$idade = 20;
echo $idade >= 18 ? "Maior" : "Menor";
- Null Coalescing (
??):
$usuario = $_GET['user'] ?? 'Visitante';
echo $usuario; // Imprime 'Visitante' se não existir $_GET['user']
5. Supressão de Erros com @
@ permite ignorar warnings/notices em expressões específicas:
echo @$array['chave_inexistente'];
⚠️ Use com cuidado: não resolve problemas, apenas oculta avisos.
Resumo Prático
| Forma Curta | Equivalência / Uso | Observações |
|---|---|---|
<?= ?> | <?php echo … ?> | Apenas para imprimir valores |
<? ?> | <?php ?> | Depende de short_open_tag |
<<<EOT / <<<'EOT' | Strings multilinha | Heredoc interpreta variáveis, Nowdoc não |
?: | Operador ternário | If/else em linha |
?? | Null coalescing | Valor padrão se null ou não setado |
@ | Supressão de erros | Oculta warnings/notices |
💡 Dica DevData:
Formas curtas aumentam a produtividade, mas devem ser usadas com critério. Prefira <?= ?> e operadores ternário/null coalescing; evite short tags em produção.
