Unterschied von <? und <?php Beginn eines PHP-Scripts
mangodrone
- php
0 bleicher0 mangodrone0 suit
0 dedlfix
Guten Abend
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?
Vielen Dank
mangodrone
Grüße,
für <? muss auf dem server shorttags aktiv sein - im allgemeinen ist es nciht empfehlenswert - problempotential ohne gewinn
MFG
bleicher
für <? muss auf dem server shorttags aktiv sein
short_open_tags
im allgemeinen ist es nciht empfehlenswert - problempotential ohne gewinn
Der Gewinn ist kürzerer Code ;)
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!
c) keinen XML-Vorspann [...]
Muss man denn alles Übersetzen? ;)
@@dedlfix:
nuqneH
c) keinen XML-Vorspann außerhalb von PHP notieren möchtest, so du überhaupt einen brauchst.
Nicht nur die XML-Deklaration wäre bei short_open_tags problematisch, sondern auch XML-Verarbeitungsanweisungen wie <?xml-stylesheet … ?>
.
Qapla'