Können kurze PHP-Tags verwendet werden?

Lesezeit: 3 Minuten

Konnen kurze PHP Tags verwendet werden
MDCore

Hier sind die Informationen laut offizieller Dokumentation:

Es gibt vier verschiedene Paare von öffnenden und schließenden Tags, die in PHP verwendet werden können. Zwei davon, <?php ?>
und <script language="php"> </script>, sind immer verfügbar. Die anderen beiden sind kurze Tags und Tags im ASP-Stil und können über die Konfigurationsdatei php.ini ein- und ausgeschaltet werden. Obwohl einige Leute kurze Tags und Tags im ASP-Stil bequem finden, sind sie weniger portabel und generell nicht zu empfehlen.

Nach meiner Erfahrung die meisten Server tun kurze Tags aktiviert haben. Tippen

<?=

ist viel bequemer als das Tippen

<?php echo 

Die Bequemlichkeit des Programmierers ist also ein wichtiger Faktor warum sind sie nicht zu empfehlen?

  • Zur Beantwortung der why Teilweise möchte ich den Zend PHP 5 Certification Guide zitieren: „Kurze Tags waren eine Zeitlang der Standard in der PHP-Welt; sie haben jedoch den großen Nachteil, dass sie mit XML-Headern in Konflikt geraten, und sind daher etwas zurückgefallen am Wegesrand.”

    – Flauschige

    13. April 2011 um 14:40 Uhr

  • Was ist der Anwendungsfall, in dem dieses Problem auftritt, bedeutet das, dass es für Entwickler mühsam ist, XML mit PHP zu generieren?

    – Jon z

    6. September 2012 um 11:08 Uhr


  • Nehmen wir an, Sie haben XML-Dokumente, die Sie veröffentlichen möchten, aber Sie möchten, dass die Dokumente aus irgendeinem Grund php-parsbar sind, also machen Sie .xml für Ihren Browser parsbar. Sie verwenden kurze Tags, damit sie aktiviert sind, und plötzlich wird das XML-Dokument über die XML-Header geparst, wodurch Dinge kaputt gehen. Hat mich verrückt gemacht, als ich versuchte, das vor langer Zeit herauszufinden. Seitdem Shortcodes auf jedem Server, den ich betreibe, deaktiviert wurden und jedes Team, mit dem ich zusammengearbeitet habe, auf Nicht-Shortcodes zurückgreifen musste

    – thenetimp

    4. Oktober 2012 um 7:51 Uhr

  • Ab PHP 5.4.0 enthält die short_open_tag-Direktive das kurze echo-Tag nicht mehr <?= $example;?>! Dies ist sehr wichtig, da die Verwendung aller anderen kurzen Tags als zwecklos angesehen wird. Auf jeden Fall wird von nun an die Verwendung des kurzen Echo-Tags empfohlen. Es sorgt für eine glattere und aufgeräumtere Code-Basis – insb. in Ansichtsdateien. Damit für PHP >= 5.4.0 <?= ?> kann verwendet werden ohne Einstellung short_open_tag. Bitte verwenden Sie die anderen kurzen Tags nicht in Ihrem Code. Die Code-Götter werden sehr wütend, wenn du das tust …

    – Borislav Sabev

    8. April 2013 um 22:27 Uhr

  • Ich werde dies als kurzen Kommentar hinzufügen, weil es bereits viel zu viele lange Antworten gibt: <? ist nicht nur in XML für die Eröffnung verwendet <?xml version="1.0" ?> Erklärung; es ist die allgemeine Syntax für “Verarbeitungsanweisungen”, das zweithäufigste Beispiel ist <?xml-stylesheet ... ?>. <?php kann eigentlich als gültige Verarbeitungsanweisung betrachtet werden, ebenso wie <?= (wie in 5.4+ erlaubt), aber das Ganze beanspruchen <? schafft auch unnötige Konflikte zwischen den Syntaxen.

    – IMSoP

    5. August 2013 um 18:46 Uhr

Konnen kurze PHP Tags verwendet werden
Oli

Sie werden nicht empfohlen, da es sich um eine PITA handelt, wenn Sie Ihren Code jemals auf einen Server verschieben müssen, auf dem er nicht unterstützt wird (und Sie ihn nicht aktivieren können). Wie Sie sagen, viele Shared Hosts tun unterstützen Shorttags, aber “viele” sind nicht alle. Wenn Sie Ihre Skripte teilen möchten, verwenden Sie am besten die vollständige Syntax.

I stimme zu <? und <?= sind einfacher für Programmierer als <?php und <?php echo aber es ist möglich, ein Massen-Suchen und Ersetzen durchzuführen, solange Sie jedes Mal dasselbe Formular verwenden (und keine Leerzeichen einfügen (z. B.: <? php oder <? =)

Ich kaufe Lesbarkeit überhaupt nicht als Grund. Die meisten ernsthaften Entwickler haben die Möglichkeit, die Syntax hervorzuheben.

Wie ThiefMaster in den Kommentaren erwähnt, ab PHP 5.4, <?= ... ?> Tags werden unabhängig von den Shorttags-Einstellungen überall unterstützt. Dies sollte bedeuten, dass sie sicher in portablem Code verwendet werden können, aber das bedeutet, dass dann eine Abhängigkeit von PHP 5.4+ besteht. Wenn Sie Pre-5.4 unterstützen möchten und Shorttags nicht garantieren können, müssen Sie trotzdem verwenden <?php echo ... ?>.

Außerdem muss man das wissen ASP-Tags <% , %> , <%= und script-Tag wurden aus PHP 7 entfernt. Wenn Sie also langfristig portablen Code unterstützen und auf die modernsten Tools umsteigen möchten, sollten Sie diese Teile des Codes ändern.

  • Die Erklärung ist also: Sie sind schlecht, weil sie nicht unterstützt werden? Aber warum werden sie nicht unterstützt? Weil sie nicht Teil der Spezifikation sind? Ok, aber warum sind sie nicht Teil der Spezifikation? Ich bin etwas enttäuscht von dieser Antwort.

    – Josef Sabl

    30. November 2009 um 22:34 Uhr

  • Ich bin nicht hier, um die “großen Fragen” zu erörtern, wie warum wir hier sind, wie alles begann usw. Die Unterstützung von Shorttag ist auf gemeinsam genutzten Servern nicht garantiert und wird in der nächsten Hauptversion vollständig entfernt. Das ist alles, was Sie wissen müssen.

    – Ol

    1. Dezember 2009 um 11:49 Uhr

  • Obligatorisches PHP ist eine Template-Engine. 😛

    – Syntax-Fehler

    19. April 2010 um 3:28 Uhr


  • Kurze Tags werden nicht auslaufen. Nur kurze Tags im ASP-Stil.

    – Brian Lacy

    22. Juni 2010 um 16:55 Uhr

  • In der (sehr nahen) Zukunft von PHP 5.4 wird die Verwendung von

    – Herr Griever

    12. Januar 2012 um 19:07 Uhr

Ich bin zu lieb <?=$whatever?> es gehen zu lassen. Hatte nie ein Problem damit. Ich werde warten, bis es mich in den Arsch beißt. Im Ernst, 85% (meiner) Kunden haben Zugriff auf die php.ini in der Selten wenn sie ausgeschaltet sind. Die anderen 15 % nutzen Mainstream-Hosting-Anbieter, und praktisch alle haben sie aktiviert. Ich liebe sie.

  • @B Seven Wenn Sie versuchen, jedes theoretische Problem zu vermeiden, das auftreten könnte, wird Ihr Code mit ziemlicher Sicherheit ineffizient und fehlerhaft sein. Bis die PHP-Gruppe zustimmt, kurze Tags auslaufen zu lassen [not ASP tags]die Sorge, gebissen zu werden, ist viel geringer und die potenzielle Lösung viel einfacher als andere Dinge, die Sie mit “Reparieren” verbringen können.

    – SamGoody

    15. November 2011 um 8:47 Uhr

  • Wenn es Sie beißt, wechseln Sie zu einem besseren Hosting

    – Lüge Ryan

    10. Januar 2013 um 3:43 Uhr

  • Ich bin nicht wirklich damit einverstanden, etwas nicht zu verwenden, weil es könnte nicht unterstützt werden. Sollten wir keine der anderen Funktionen verwenden, die auf einem Server möglicherweise nicht unterstützt werden? MYSQL vs. MYSQLI? Sie werden nach und nach Ihre Zeit verschwenden, indem Sie immer wieder lange Tags schreiben, nur um die winzige Chance zu vermeiden, ein wenig Zeit für den Wechsel zu einem besseren Host zu verschwenden.

    – Dekan oder

    28. Juni 2014 um 21:01 Uhr

  • @BSeven, meinst du, du verwendest keine PHP-Erweiterungen außer den standardmäßig ausgelieferten?

    – Schrittmacher

    9. April 2015 um 10:10 Uhr

1647087858 116 Konnen kurze PHP Tags verwendet werden
dukeofgaming

Beginnend mit PHP 5.4 ist die Echo-Verknüpfung ein separates Problem von Short-Tags, da die Echo-Verknüpfung immer aktiviert ist. Jetzt ist es Fakt:

Also die Echo-Verknüpfung selbst (<?=) kann jetzt sicher verwendet werden.

  • Ich würde sagen, dies ist das einzige “Short-Tag”, das benötigt wird. <?php kann am Anfang aller Klassendateien verwendet werden, und dann haben Sie <?= für deine Ansichten. Win-Win.

    – Xeoncross

    10. Mai 2012 um 18:53 Uhr

  • So the echo shortcut itself (<?=) is safe to use … solange Sie sich wohlfühlen, wenn Sie PHP 5.4 benötigen. Weit verbreitete PHP-Apps (wie WordPress) haben nicht den Luxus, 5.4 zu benötigen, und boten sogar bis 2011 weiterhin Unterstützung für PHP 4 an – volle 7 Jahre nach der Veröffentlichung von PHP 5. Wenn Sie an einem Ort wie Facebook sind, wo alle Installationen Ihrer Software direkt von der Firma selbst betrieben werden, dann ist es viel einfacher, 5.4-Support zu benötigen, als wenn Sie an einem Projekt wie WordPress arbeiten.

    – Frank Bauer

    13. September 2012 um 18:01 Uhr


  • @dukeofgaming, Wow, guter Fang, wusste nicht, dass ihre SVN-Revisionen im Internet zugänglich sind.

    – Schrittmacher

    9. April 2015 um 10:18 Uhr


Das Problem bei dieser ganzen Diskussion liegt in der Verwendung von PHP als Templating-Sprache. Niemand argumentiert, dass Tags in Quelldateien von Anwendungen verwendet werden sollten.

Die einbettbare Syntax von PHP ermöglicht es jedoch, es als leistungsstarke Vorlagensprache zu verwenden, und Vorlagen sollten so einfach und lesbar wie möglich sein. Viele fanden es einfacher, eine viel langsamere Add-on-Template-Engine wie Smarty zu verwenden, aber für die Puristen unter uns, die schnelles Rendern und eine reine Codebasis verlangen, ist PHP die einzige Möglichkeit, Templates zu schreiben.

Das EINZIGE gültige Argument GEGEN die Verwendung von kurzen Tags ist, dass sie nicht auf allen Servern unterstützt werden. Kommentare zu Konflikten mit XML-Dokumenten sind lächerlich, weil Sie wahrscheinlich sowieso nicht PHP und XML mischen sollten; und wenn ja, sollten Sie PHP verwenden, um Textzeichenfolgen auszugeben. Sicherheit sollte nie ein Problem sein, denn wenn Sie vertrauliche Informationen wie Datenbankzugriffsdaten in Vorlagendateien einfügen, haben Sie größere Probleme!

Nun, was die Frage der Serverunterstützung angeht, muss man sich zugegebenermaßen der Zielplattform bewusst sein. Wenn Shared Hosting ein wahrscheinliches Ziel ist, sollten kurze Tags vermieden werden. Aber für viele professionelle Entwickler (wie mich selbst) erkennt der Client an (und hängt tatsächlich davon ab), dass wir die Serveranforderungen diktieren werden. Oft bin ich für die Einrichtung des Servers selbst verantwortlich.

Und wir arbeiten NIEMALS mit einem Hosting-Anbieter zusammen, der uns nicht die absolute Kontrolle über die Serverkonfiguration gibt – in einem solchen Fall könnten wir damit rechnen, dass wir viel mehr Ärger bekommen, als nur den Short-Tag-Support zu verlieren. Es passiert einfach nicht.

Also ja – ich stimme zu, dass die Verwendung von kurzen Tags sorgfältig abgewogen werden sollte. Aber ich bin auch der festen Überzeugung, dass es IMMER eine Option sein sollte und dass ein Entwickler, der sich seiner Umgebung bewusst ist, sich frei fühlen sollte, sie zu verwenden.

Konnen kurze PHP Tags verwendet werden
Jake McGraw

Kurze Tags kommen dank zurück Zend-Framework drücken die “PHP als Template-Sprache„in ihrer Standard-MVC-Konfiguration. Ich verstehe nicht, worum es in der Debatte geht, die meiste Software, die Sie während Ihres Lebens produzieren werden, wird auf einem Server laufen, den Sie oder Ihr Unternehmen kontrollieren werden. Solange Sie sich konsequent halten, sollte es keine Probleme geben.

AKTUALISIEREN

Nach ziemlich viel Arbeit mit Magento, das die Langform verwendet. Daher bin ich auf die Langform umgestiegen:

<?php and <?php echo

über

<? and <?=

Scheint eine kleine Menge Arbeit zu sein, um die Interoperabilität sicherzustellen.

  • Ich arbeite freiberuflich und mein gesamter Code geht auf Shared Hosting, also überhaupt keine Kontrolle! 🙂

    – MDCore

    22. Oktober 2008 um 4:01 Uhr

  • Wenn Sie genug Kunden haben, die zu Ihrem eigenen Coloc ziehen, ist Shared Hosting unsicher und instabil.

    – Jake McGraw

    6. November 2008 um 15:57 Uhr

  • Die kurzen Tags, die Zend zurückbrachte, wurden anscheinend nicht erkannt, da Zend die lange Version verwendet: framework.zend.com/manual/en/zend.view.scripts.html

    – Gerry

    1. Dezember 2010 um 6:33 Uhr


  • @Gerry Ich habe das auch kürzlich gelesen, siehe den letzten Kommentar zu diesem Thread: Aktualisieren Sie .htaccess, um kurze offene Tags zu aktivieren

    – Herr weiß

    4. Februar 2011 um 1:56 Uhr

  • Du solltest nach UPDATE unbedingt die Grammatik im ersten Satz korrigieren, was in der jetzigen Form keinen Sinn macht.

    – redreinard

    29. März 2013 um 23:26 Uhr

1647087859 710 Konnen kurze PHP Tags verwendet werden
Vinko Vrsalović

Wegen der Verwirrung, die es mit XML-Deklarationen erzeugen kann. Viele Leute zustimmen mit du aber.

Eine zusätzliche Sorge ist der Schmerz, den es verursachen würde, alles mit kurzen Tags zu codieren, nur um am Ende herauszufinden, dass der endgültige Hosting-Server sie deaktiviert hat …

  • Ich arbeite freiberuflich und mein gesamter Code geht auf Shared Hosting, also überhaupt keine Kontrolle! 🙂

    – MDCore

    22. Oktober 2008 um 4:01 Uhr

  • Wenn Sie genug Kunden haben, die zu Ihrem eigenen Coloc ziehen, ist Shared Hosting unsicher und instabil.

    – Jake McGraw

    6. November 2008 um 15:57 Uhr

  • Die kurzen Tags, die Zend zurückbrachte, wurden anscheinend nicht erkannt, da Zend die lange Version verwendet: framework.zend.com/manual/en/zend.view.scripts.html

    – Gerry

    1. Dezember 2010 um 6:33 Uhr


  • @Gerry Ich habe das auch kürzlich gelesen, siehe den letzten Kommentar zu diesem Thread: Aktualisieren Sie .htaccess, um kurze offene Tags zu aktivieren

    – Herr weiß

    4. Februar 2011 um 1:56 Uhr

  • Du solltest nach UPDATE unbedingt die Grammatik im ersten Satz korrigieren, was in der jetzigen Form keinen Sinn macht.

    – redreinard

    29. März 2013 um 23:26 Uhr

1647087859 251 Konnen kurze PHP Tags verwendet werden
Stich

Es folgt das wunderbare Flussdiagramm desselben:

1647087860 871 Konnen kurze PHP Tags verwendet werden

Quelle: ähnliche Frage zu Software Engineering Stack Exchange

  • Dies beschreibt, ob das kurze Echo-Tag verwendet werden soll, nicht dasselbe wie das <? kurze Tags, die in der Frage erwähnt wurden (obwohl dieselbe Konfigurationseinstellung vor 5.4 verwendet wurde)

    – Alok

    26. Juli 2013 um 12:45 Uhr

  • Tatsächlich sollte dies eine Antwort sein, die jeder verstehen kann, obwohl die Umstände nicht wirklich erklärt werden, warum Sie in vielen Fällen keine kurzen Tags verwenden möchten (z. B. die Möglichkeit, die php.ini-Datei auf einem gemeinsam genutzten Hosting-System nicht zu ändern).

    – Björn K

    6. August 2013 um 13:49 Uhr

993600cookie-checkKönnen kurze PHP-Tags verwendet werden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy