Avatar ·

Por que em PHP é recomendado omitir a tag de fechamento `?>` no final do arquivo?

Olá a todos! Sou um desenvolvedor PHP iniciante e recentemente notei que em muitos frameworks modernos (Laravel, Symfony) e na documentação frequentemente dizem que a tag de fechamento `?>` no final do arquivo PHP deve ser omitida. Honestamente, não entendo muito bem por que fazer isso. Afinal, nos tutoriais de PHP sempre mostram a construção completa: ```php ``` Tentei remover o `?>` no meu projeto, e o código ainda funcionou. Mas fico com a dúvida: o que pode dar errado se eu deixar a tag de fechamento? Parece que nada de grave acontece. Talvez seja apenas um capricho de desenvolvedores experientes? Recentemente, porém, li que isso está relacionado à segurança e aos cabeçalhos HTTP. Aparentemente, por causa de um espaço acidental ou quebra de linha após `?>`, pode-se obter o erro "headers already sent". Isso aconteceu comigo algumas vezes, mas pensei que fosse por outra razão. Expliquem, por favor, de forma simples: qual é o problema real com a tag de fechamento? Quando posso deixá-la e quando devo omiti-la?