dedlfix: Unterschied von <? und <?php Beginn eines PHP-Scripts

Beitrag lesen

Hi!

Interessenshalber möchte ich gerne endlich mal in Erfahrung bringen was der Unterschied zwischen einem PHP-Script-Beginn von <? und <?php ist. Ich benutze immer die zweite Variante, habe aber schon oft die erste gesehen. Ist das ein Unterschied, evtl. von älteren PHP-Versionen, oder dasselbe?

<? ist eine Kurzform von <?php, die noch die Verkürzung <?= expression ?> für <?php echo expression ?> mitbringt. Außerdem gibt es noch zwei andere, kaum verbreitete Möglichkeiten, in den PHP-Modus zu schalten: Escaping from HTML.

Da die Kurzform weder missbilligt (deprecated) noch sonstwie auf der Abschussliste steht, spricht nichts dagegen, sie zu verwenden, solange du
a) Einfluss auf die Konfiguration hast,
b) nicht vorhast, portable Scripte zu schreiben, was auch einen Umzug zu einer restriktiver eingestellten System beinhaltet,
c) keinen XML-Vorspann außerhalb von PHP notieren möchtest, so du überhaupt einen brauchst.

Zu a) Ich kann mich nicht erinnern, hier schon mal eine Anfrage gesehen zu haben, bei der sich herausstellte, dass die Ursache ein vom Hoster deaktiviertes short_open_tag war. Und sie tun gut daran, das nicht zu deaktivieren, weil es ein völlig unkritisches Feature ist, und man sich durch die Deaktivierung nur unnötige Supportanfragen einhandelt.
Zu c) Der XML-Vorspann ist das einzige (mir) bekannte Konfliktpotential im Webumfeld, doch den will man einerseits nicht haben, weil er nichts bringt, außer alte IEs in den Quirksmodus zu schicken, andererseits kann man ihn als Workaround einfach mit PHPs echo ausgeben, wenn man mit XML hantiert.

Lo!