Short Tags must die

Einige von Euch haben vielleicht die Aufregung über PHP8 und Short Tags schon mitbekommen (z.B. auf Der Seite mit dem Gezwitscher).

Worum geht es?

<? if($foo) ?>
vs.
<?php if($foo) ?>

Die kurze Variante ist inzwischen standardmäßig in der Config disabled und seit Jahren schon böseböse. Das Feature soll nun mit PHP 7.4 deprecated werden und in PHP 8 komplett ausgebaut.

RFC ist hier: https://wiki.php.net/rfc/deprecate_php_short_tags

Warum sollte mich das interessieren?

Klingt erst mal nach *schulterzuck* – betrifft mich nicht. Merk ich ja, wenn es nicht mehr geht. Nutzen wir sowieso nicht.

Das Dumme ist: Es wird dann (Stand heute – kann sich noch ändern) kein Fehler geworfen, PHP interpretiert Short Tags einfach nicht mehr. Das bedeutet, der Code landet einfach so im Output.

Und: Nutzen wir sowieso nicht – dachte ich auch. Bis ich heute über einen PR gestolpert bin, in dem ich in einem Steinalt-Template doch noch Short Tags gefunden habe.

NICHT betroffen ist übrigens das Short Echo Tag <?= $foo ?> – das kann weiterhin verwendet werden!

Lösung

  • Search & Replace von „<? “ nach „<?php „
  • Diverse Code-Fixer

About the author

Comments

  1. Übrigens: Grund dafür, dass Short Tags böse sind ist XML.

    Eine XML-Datei beginnt nämlich mit . Wer XML mit PHP und Short Tags erzeugt läuft hier auf einen Compilerfehler: „Parse error: syntax error, unexpected ‚version‘ (T_STRING)“.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.