Sind sie gleich sicher? Ich wurde darüber informiert
<?=$function_here?>
weniger sicher war und die Seitenladezeiten verlangsamte. Ich bin strikt voreingenommen, Echo zu verwenden.
Was sind die Vorteile/Nachteile?
Hausaufgaben
Sind sie gleich sicher? Ich wurde darüber informiert
<?=$function_here?>
weniger sicher war und die Seitenladezeiten verlangsamte. Ich bin strikt voreingenommen, Echo zu verwenden.
Was sind die Vorteile/Nachteile?
Pascal Martin
<?
und <?=
werden kurze offene Tags genannt und sind nicht immer aktiviert (siehe die short_open_tag
Direktive) mit PHP 5.3 oder niedriger (aber seit PHP 5.4.0, <?=
ist immer verfügbar).
Tatsächlich sind sie in der mit PHP 5.3.0 bereitgestellten php.ini-Produktionsdatei standardmäßig deaktiviert:
$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off
Daher ist es möglicherweise keine gute Idee, sie in einer Anwendung zu verwenden, die Sie verteilen möchten: Ihre Anwendung funktioniert nicht, wenn sie nicht aktiviert sind.
<?php
auf der anderen Seite, kann nicht deaktiviert werden – daher ist es am sichersten, dieses zu verwenden, auch wenn das Schreiben länger dauert.
Abgesehen davon, dass kurze offene Tags nicht unbedingt aktiviert sind, glaube ich nicht, dass es einen großen Unterschied gibt.
Vielleicht ist die Verwendung von GD oder CURL oder PHP überhaupt keine gute Idee, da es sich um externe Module handelt, die bei einigen lahmen Shared-Hosting-Anbietern deaktiviert werden können? Es ist kompletter BS, dass sie fast immer eingeschaltet sind.
– Slawek
16. Januar 2012 um 10:11 Uhr
Wenn man bedenkt, dass sie in der Standard-Produktionskonfiguration ausgeschaltet sind, denke ich, dass sie immer seltener eingeschaltet werden;; wenn man bedenkt, dass es einfach/einfach ist, sie nicht zu verwenden … nun, es steht Ihnen natürlich frei, jede beliebige Syntax zu verwenden, ich hoffe nur für Sie, dass Sie Ihre Anwendung nicht auf einem Server bereitstellen müssen, der die Standardkonfiguration dafür hat Richtlinie 😉
– Pascal Martin
16. Januar 2012 um 21:16 Uhr
Die Standardkonfiguration für PHP, MySQL und Apache ist nicht für den Produktionseinsatz geeignet und wir alle wissen es 🙂 Sie befürworten nur das Schreiben von unlesbarem Code … wegen was? Einer von 40 Servern unterstützt möglicherweise keine kurzen Tags? 🙂 … Neben Diese Direktive betraf auch die Kurzschrift
– Slawek
16. Januar 2012 um 22:19 Uhr
Ich habe leider keine Zahlen, die meine Theorie untermauern, aber ich würde in diesem Punkt nicht die 1/40-Chance eingehen (und das bin ich tatsächlich nicht – und ich arbeite in einem Unternehmen, in dem wir unsere Server selbst konfigurieren und nicht auf einen externen Hosting-Dienst angewiesen sind) ;; Ich sollte hinzufügen, dass PHP 5.4 nicht veröffentlicht wird (noch – es sollte in ein paar Tagen/Wochen sein)und es wird Monate dauern, bis es auf 1/40 Servern da draußen installiert ist (ganz zu schweigen von der Zeit, die es dauern wird, bis es auf 50 % von ihnen installiert ist … )
– Pascal Martin
17. Januar 2012 um 5:34 Uhr
Karl
Echo ist im Allgemeinen einfach besser zu verwenden, weil …
Aber sie sind im Allgemeinen gleich. Siehe auch:
was?! 6 entfernt sie? lahme Soße! Wenn ich für den Server verantwortlich bin, kümmere ich mich nicht um Portabilität. <?=
ist so viel schöner als <?php echo
– mp
6. September 2009 um 20:31 Uhr
Schlimmer noch:
– Mauris
7. September 2009 um 1:59 Uhr
Die Abneigung der PHP-Community gegenüber kurzen Tags verblüfft mich einfach; sie vollständig zu entfernen n php6 ist nur der letzte Beweis für mich, dass das php-Designteam verrückt ist. ist in einem Template so viel sauberer als
– DGM
7. September 2009 um 5:13 Uhr
php6 Grund ist einfach nicht wahr
– Ihr gesunder Menschenverstand
19. März 2010 um 9:24 Uhr
PHP6 oder wie auch immer die nächste Version heißen wird NICHT Short-Open-Tags entfernen. Wenn überhaupt, werden sie standardmäßig deaktiviert.
– Gordon
7. September 2010 um 11:25 Uhr
Blouarf
http://php.net/manual/en/language.basic-syntax.phpmode.php Zustände:
Ab PHP 5.4 wird das kurze Echo-Tag immer erkannt und ist gültig, unabhängig von der
short_open_tag
Einstellung.
short_open_tag
Aus oder Ein spielt keine Rolle mehr.
Jetzt können Sie also unbesorgt solche Tags in Ihre Vorlagen einfügen:
<?= (($test) ? "val1" : "val2") ?>
Nun ist es offiziell, der „Short Echo Tag“ ist etwas ganz anderes als der „Short Tag“.
Abgesehen von der ganzen halbreligiösen Debatte darüber, ob die Verwendung von kurzen Tags eine gute Idee ist oder nicht und ob sie als veraltet angesehen werden sollte oder nicht, war die ursprüngliche Frage, wie sicher oder unsicher sie zu verwenden sind.
Einfach ausgedrückt: Wenn Sie kurze Tags auf einem Server verwenden, der sie nicht unterstützt, können Teile Ihres PHP-Codes offengelegt werden, was als Sicherheitslücke betrachtet werden kann.
leopold
Nur um eine weitere PSR-Quelle hinzuzufügen: http://www.php-fig.org/psr/psr-1/
PHP-Code MUSS die langen Tags oder die kurzen Echo-Tags verwenden; es DARF NICHT die anderen Tag-Variationen verwenden.
Angabe:
<?php ?> and <?= ?>
Peter Mortensen
Sie sollten
Außerdem wird bereits in PHP 5.5
Falls noch nicht sicher… Ein bisschen googeln hilft sehr =D