PHP ist eine der am häufigsten verwendeten Programmiersprachen in der Webentwicklung. Eines der wichtigsten Merkmale dieser Sprache ist, dass sie verschiedene Begrenzungsmethoden bietet. Werfen wir einen kurzen Blick auf die öffnenden und schließenden PHP-Tags:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

Um PHP effizienter nutzen zu können, ist es notwendig, die Unterschiede und die Bedeutung dieser Tags zu verstehen. In diesem Artikel erfahren Sie, wie Sie PHP-Tags effektiv nutzen.

Warum sollten wir keine kurzen PHP-Tags verwenden?

Kurze PHP-Tags können für eine einfachere und schnellere Codierung nützlicher sein. Allerdings ist es auf den meisten Hosting-Servern und Servern standardmäßig in der PHP.ini-Konfiguration deaktiviert. In der PHP.ini-Konfiguration, damit diese kurzen Tags funktionieren short_open_tag Option muss aktiviert sein. Die einzige Methode, die definitiv auf jedem PHP-Server funktioniert, ist . Wenn Sie erwägen, Ihr PHP auf einem Server bereitzustellen, den Sie nicht kontrollieren, können Sie dies jederzeit tun <?php ?> Sie sollten den Ansatz nutzen.

Kurzes PHP-Echo-Tag und PHP.ini

<?php echo() ?>

in PHP <?= Tag in der PHP-Konfiguration short_open_tag Sie kann unabhängig davon verwendet werden, ob die Option aktiviert ist oder nicht. Sie können diese Verknüpfung also problemlos anstelle der oben genannten verwenden.
Wenn Sie nur für sich selbst Code schreiben und die von Ihnen verwendete PHP-Konfiguration steuern können, sind kurze Tags möglicherweise nützlicher. Aber denken Sie daran <? ?> -Tag kann mit XML-Deklarationen in Konflikt stehen. Auch <% %> Das Tag ist eigentlich im ASP-Stil.

Schließende PHP-Tags und mögliche Probleme

Schließen einer reinen PHP-Datei (z. B. einer Datei, die nur eine Klassendefinition enthält) ?> Achten Sie beim Hinzufügen des Tags darauf, keine Leerzeilen zu hinterlassen. Während der PHP-Interpreter ein einzelnes Zeilenumbruchzeichen nach dem schließenden Tag sicher „ausführen“ kann, werden möglicherweise andere Zeilenumbrüche an den Browser ausgegeben. Wenn Sie dann HTTP-Header schreiben, kann die Sache noch verwirrender werden.

PHP PSR-2

Der PSR-2-Codierungsstandard ist Teil der PHP-PSR-Codierungsstandards, die erstellt wurden, um Best Practices in PHP zu ermitteln. PSR-2-Codierungsstandards gelten nur für Dateien, die PHP-Code enthalten. ?> empfiehlt, keine schließenden Tags zu verwenden. Der Hauptgrund für diese Empfehlung besteht darin, zu verhindern, dass nach dem schließenden Tag versehentlich verbleibende Zeichen wie Leerzeichen oder Zeilenumbrüche an den Browser gesendet werden. In PHP, ?> Jedes dem Tag folgende Zeichen wird automatisch als Teil der HTML-Ausgabe betrachtet. Dies kann insbesondere bei der Verarbeitung von HTTP-Headern problematisch sein.

Unnötige Zeichen am Ende einer PHP-Datei können die korrekte Verarbeitung von HTTP-Headern verhindern. Im HTTP-Protokoll ist es bei jeder Ausgabe unmöglich, Header zu senden, da Header vervollständigt werden müssen, bevor der Inhalt gesendet wird. Dies führt zu einem Problem namens „bereits gesendete Header“, das sich auf Aktionen wie das Starten einer Sitzung, das Setzen eines Cookies oder das Umleiten einer Seite auswirken kann.

Daher empfiehlt PSR-2, das schließende Tag nicht in Dateien zu verwenden, die nur PHP-Code enthalten, um solche häufigen Fehler zu vermeiden und die Sauberkeit des Codes zu wahren. Dieser Ansatz eliminiert mögliche Probleme, die durch unerwünschte Leerzeichen oder Zeilenendezeichen am Ende des Codes auftreten können, und trägt zu einem stabileren und fehlerfreien Betrieb von PHP-Skripten bei.

PHP-Tags und Kompatibilität

Beim Schreiben von Webanwendungen für ältere Versionen schließen ?> HTML mit Tags <!doctype> Achten Sie darauf, dass zwischen den Tags keine neue Zeile entsteht. Ältere IE-Versionen können andere Fehler auslösen, wenn sie vor der Doctype-Deklaration auf Leerzeichen, einschließlich Zeilenumbrüche, stoßen. Dies ist bei neueren Versionen des IE und anderen, fortschrittlicheren Browsern nicht der Fall. (Das heißt, für jeden Browser außer IE.)