wake-up-neo.net

Um PHP zu schließen oder nicht zu schließen

Ich habe gelesen, dass es (besonders mit PHP 7) ratsam ist, die PHP-Dateien nicht mit ?> zu schließen

Viele meiner WP PHP-Dateien enden folgendermaßen:

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

Sollte ich das schließende Tag entfernen und so etwas haben?

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

am Ende meiner Dateien?

13
IXN

Ja, bitte vermeiden Sie, PHP Tags am Ende der Datei zu schließen, nicht nur mit PHP 7, sondern auch mit PHP 5.

Wenn Sie das Tag schließen, wird alles, was nach dem Tag steht, auch eine Leerzeile an die Ausgabe gesendet und bewirkt, dass PHP Header sendet und das Setzen von Cookies verhindert und zur Arbeit umgeleitet wird , Feed gültig sein, und so weiter.

Ich denke, dass Sie jemals auf eine Nachricht wie gestoßen sind

Header-Informationen können nicht geändert werden - Header, die bereits von (Ausgabe gestartet um ...) in ... online gesendet wurden ...

Ein schließender ?> am Ende der Datei kann die Ursache sein.

17
gmazzap

In Ihrem speziellen Beispiel würde ich das schließende Tag beibehalten, d. H. Einzeilige Funktionsaufrufe in einer Vorlage. Es ist konsistent und hilft Klarheit zu schaffen (auf die gleiche Weise, wie WordPress es empfiehlt nachgestellte Kommas für Arrays ).

<?php get_footer();

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

Für alle anderen Dateien (Funktionen, Includes usw.) ist der Hinweis jedoch auf jeden Fall eine gute Idee:

<?php // Start of file

class MY_Class {
    function just_do_it() {
    }
}

// Bye bye closing tag

Ich finde es sauberer, und wie andere bereits erwähnt haben, besteht keine Gefahr, dass die gefürchteten "Header bereits gesendet" werden.

11
TheDeadMedic