Para fechar ou não fechar o php

12

Eu li que é aconselhável (especialmente com php 7) para não fechar os arquivos php com ?>

Muitos dos meus arquivos WP php terminam assim:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Devo remover a tag de fechamento e ter algo parecido com isso

<?php get_sidebar(); ?>
<?php get_footer(); 

no final dos meus arquivos?

    
por IXN 04.12.2015 / 13:01

2 respostas

16

Sim, por favor, evite fechar as tags PHP no final do arquivo, não apenas com o PHP 7, mas também com o PHP 5.

O motivo é que, se você fechar a tag, qualquer coisa após a tag, até mesmo uma linha em branco, será enviada para a saída e fará com que o PHP envie cabeçalhos, impedindo que o cookie seja definido, redirecionado para o trabalho, alimentado para ser válido e assim por diante.

Eu acho que você já encontrou uma mensagem como

  

Não é possível modificar as informações do cabeçalho - cabeçalhos já enviados por (saída iniciada em ...) em ... on-line ...

Um fechamento ?> no final do arquivo pode ser a causa.

    
por gmazzap 04.12.2015 / 16:27
11

Dado seu exemplo específico, eu manteria a tag de fechamento, ou seja, chamadas de função de uma linha dentro de um modelo. É consistente e ajuda a clareza (da mesma forma que o WordPress recomenda as vírgulas à direita para as matrizes ) - caso contrário, imagine se um não desenvolvedor pegou seu arquivo e começou a adicioná-lo:

<?php get_footer();

<div>What the hell am I doing wrong?</div>

No entanto, para todos os outros arquivos (funções, includes, etc.), o conselho é definitivamente uma boa ideia:

<?php // Start of file

class MY_Class {
    function just_do_it() {
    }
}

// Bye bye closing tag

Eu acho que é mais limpo, e como outros já mencionaram, não há risco de os temidos "cabeçalhos já enviados".

    
por TheDeadMedic 04.12.2015 / 18:36

Tags