endif
A palavra-chave "endif" é uma estrutura de controle em PHP usada para marcar o fim de uma instrução "if". Explore a sintaxe e o uso neste artigo.
endif
A palavra-chave endif faz parte da sintaxe alternativa do PHP para estruturas de controle. Em vez de envolver o corpo de uma instrução if entre chaves ({ ... }), a sintaxe alternativa abre o bloco com dois-pontos (:) e o fecha com endif;. Esse estilo foi adicionado especificamente para tornar o PHP mais legível quando mesclado com HTML em templates.
Este artigo aborda a sintaxe do endif, quando utilizá-lo e os problemas comuns que podem surgir.
Sintaxe
Um bloco if padrão usa chaves; a sintaxe alternativa substitui a chave de abertura por : e a chave de fechamento por endif;:
A sintaxe PHP do endif
// Brace syntax
if ($condition) {
// code to be executed
}
// Alternative syntax — equivalent
if ($condition):
// code to be executed
endif;Duas regras são importantes:
- A linha da condição termina com dois-pontos (
:), não com uma chave de abertura. - O bloco é fechado com
endif, que deve ser seguido de ponto e vírgula (;). Omitir o ponto e vírgula é a causa mais comum de erro de parse aqui.
O mesmo padrão se aplica às demais estruturas de controle: endforeach, endfor, endwhile e endswitch.
Exemplos
Vejamos alguns exemplos práticos de como a palavra-chave endif pode ser utilizada:
Exemplos de PHP endif
<?php
// Example 1
$x = 5;
if ($x == 5):
echo "The value of x is 5." . PHP_EOL;
endif;
// Output: The value of x is 5.
// Example 2
$x = 10;
if ($x > 5):
echo "The value of x is greater than 5.";
else:
echo "The value of x is less than or equal to 5.";
endif;
// Output: The value of x is greater than 5.Nesses exemplos, utilizamos a palavra-chave endif para marcar o fim de uma instrução if. A sintaxe alternativa também suporta ramificações else e elseif dentro do mesmo bloco, todas fechadas com um único endif;:
<?php
$score = 82;
if ($score >= 90):
echo "Grade: A";
elseif ($score >= 80):
echo "Grade: B";
elseif ($score >= 70):
echo "Grade: C";
else:
echo "Grade: F";
endif;
// Output: Grade: BObserve que com a sintaxe alternativa você escreve elseif como uma única palavra — else if (duas palavras) não é válido em um bloco com sintaxe alternativa.
Usando endif em templates HTML
Esta é a razão pela qual endif existe. Quando PHP e HTML são misturados, uma } no final é fácil de perder de vista, enquanto <?php endif; ?> lembra quase uma tag de fechamento e indica claramente qual estrutura está sendo encerrada. Compare os dois estilos:
<!-- Hard to scan: brace floating in markup -->
<?php if ($loggedIn) { ?>
<p>Welcome back!</p>
<?php } ?>
<!-- Self-documenting: alternative syntax -->
<?php if ($loggedIn): ?>
<p>Welcome back!</p>
<?php endif; ?>A forma alternativa mantém seus templates legíveis, especialmente quando os blocos se aninham — é por isso que a maioria dos templates PHP legados (e muitos sistemas de templates embutidos em frameworks) a utilizam.
Problemas comuns
- O ponto e vírgula após
endifé obrigatório.endifsem;gera um erro de parse. - Não misture sintaxes em um mesmo bloco. Não é possível abrir com
{e fechar comendif, nem abrir com:e fechar com}. - Use
elseif, nãoelse if. A forma com duas palavras só é permitida na sintaxe com chaves.
Benefícios
O uso da palavra-chave endif traz diversos benefícios, incluindo:
- Maior legibilidade: A palavra-chave
endiftorna as estruturas de controle mais fáceis de ler, especialmente em templates onde HTML e PHP estão misturados. - Estrutura mais clara: Ela fornece um marcador de fechamento nomeado e distinto para cada bloco de controle, reduzindo a chance de chaves desbalanceadas em layouts complexos.
Conclusão
A palavra-chave endif permite fechar um bloco if com um marcador nomeado e claro em vez de uma chave, o que é mais vantajoso quando o PHP está embutido em HTML. Para se aprofundar, consulte o guia completo de if / else / elseif e explore os fechadores de sintaxe alternativa correspondentes: endforeach, endfor e endswitch.