Devemos Usar a Tag de Fechamento em PHP ou Não?

Henrique Dias August 27, 2014
Source

Recentemente comecei a reparar que muitos programadores omitiam a tag de fechamento dos ficheiros PHP e, obviamente, fiquei curioso. Depois de uma pesquisa, trago-vos o porquê de não utilizar a tag ?> no final dos ficheiros. Em primeiro lugar, esta prática só deve ser realizada em ficheiros cujo seu conteúdo seja somente PHP e não contenha HTML, por exemplo. O que acontece se...? Vamos começar por debater a pergunta que vocês vêm aí em cima: o que acontece se omitirmos a tag de fechamento. A resposta é muito simples: se omitirmos a tag de fechamento de PHP, este irá tratar todos os espaços vazios e quebras de linha como caracteres "inúteis". Agora, invertendo a pergunta, o que acontece se utilizarmos a tag de fechamento? Se o fizermos, tudo o que se encontra depois dessa tag irá ser enviado para o browser e, além disso poderá haver problemas com os cabeçalhos HTTP. Como assim? Existem diversas funções que utilizamos frequentemente no código como session_start(), header(), dentro de muitas outras que alteram estes cabeçalhos. Ou seja, se alguém cometer qualquer descuido e colocar, simplesmente, diversas linhas em branco no ficheiro, poderá ocorrer um erro ao utilizar funções que utilizem os cabeçalhos. Assim... Depois de eu próprio ter lido tudo isto descobri a solução a um grande problema que estava a ter: > Cannot modify header information – headers already sent Este erro leva-nos, por vezes, a grandes "buscas" sendo o problema simplesmente simples. E que tal, já sabiam desta pequena "dica"? Aqui estão alguns exemplos para suportar o que disse acima. Espero que sejam úteis. Somente PHP Caso o ficheiro apenas contenha código PHP, não necessitamos de fechar o código com a tag ?>. ). Caso contrário será gerado um erro. PHP intercalado Se utilizarmos o PHP intercalado no HTML devemos também utilizar a tag de fechamento do PHP. Se utilizarmos PHP depois de termos fechado a tag principal do código HTML, não precisamos de utilizar a tag ?>. ### 'Include' e 'Require' Perguntaram-me o seguinte: > (...) se eu incluir o arquivo PHP sem o fechamento em um arquivo que contenha HTML não ocorre erro? Ou seja, perguntaram-me se pode ocorrer algum erro numa situação semelhante à seguinte: class.php A resposta é não mas tudo depende. Não se esqueçam de ter cuidado com os cabeçalhos HTTP.

Discussion in the ATmosphere

Loading comments...