phpbar.de logo

Mailinglisten-Archive

[php] "?>"

[php] "?>"

Ralf Stadtaus forgene at gmail.com
Son Feb 1 14:21:21 CET 2009


Hi Sascha,

> Das letzte schließende PHP-Tag einer Seite kann weggelassen werden
> (siehe: http://de2.php.net/basic-syntax.instruction-separation), ich
> würde es aber aus mehreren Gründen nicht machen:
> 1.) Wird eine Datei mit fehlendem schließenden Tag per include() oder
> require() eingebunden, kann es zu einem Parser-Fehler kommen, da die
> eingebettete Datei erst in den Context des aufrufenden Scripts geladen
> und anschließend interpretiert; das fehlende Tag erzeugt dadurch
> fehlerhaften Folgecode.

Wo hast du denn diese Information her? Das würde ja bedeuten, dass zum
Beispiel das Zend Framework total instabil wäre. Es fragt sich dann
allerdings, warum das noch niemandem aufgefallen ist.


> 2.) Man sollte einfach des guten Codings wegen jedes Tag schließen, das
> man geöffnet hat, damit der Code "sauberer" bleibt.

PHP ist kein HTML oder XML. Der schließende PHP-Tag ist optional. Das
Fehlen ist kein Makel.


> In Deinem beschriebenen Fall ist übrigens jedes Leerzeichen und jeder
> Zeilenumbruch hinter dem "?>" eine direkte Ausgabe an den Browser,
> weshalb "headers already sent" gemeldet wird. Als Workaround könntest Du
> per ob_start() oder php.ini-Direktive die Ausgabepufferung aktivieren,

Older er könnte einfach das schließende PHP-Tag weglassen.

Gruß

Ralf

-- 
Neues vom Scriptblogger: http://www.scriptblogger.de/

php::bar PHP Wiki   -   Listenarchive