Warum einige berühmte Programme immer print verwenden [closed]

Lesezeit: 4 Minuten

Benutzeravatar von zhuanzhou
zhuanzhou

Ich habe irgendwo gelesen, weiß jetzt nicht mehr wo, dass echo ist dann eine effizientere Art der Datenausgabe print.

Warum drucken viele bekannte Softwarepakete und Frameworks wie WordPress und Drupal so gerne? Gibt es dafür einen besonderen Grund oder nur eine Angewohnheit?

  • Ich bin kein PHP-Experte, daher weiß ich nicht, ob dieser Print- vs. Echo-Ratschlag, von dem Sie sprechen, allgemein bekannt ist oder nicht, aber ich wäre überrascht, wenn es große Unterschiede gibt. Wo Sie wahrscheinlich einen Unterschied finden werden, ist mit printf (ich nehme an, dass PHP diese Funktion unterstützt), weil es so viel mehr macht als ein einfaches Drucken, es sollte nur verwendet werden, wenn es benötigt wird.

    – Schwach

    3. Juli 2011 um 2:15 Uhr

  • Das ist sehr interessant. Stimmen Sie +1 ab.

    – Kevin Wang

    3. Juli 2011 um 2:15 Uhr

  • ja, das ist richtig, sehr interessant. Upvote!

    – Laufen jeden Tag

    3. Juli 2011 um 2:16 Uhr

  • Ich weiß nicht, warum dies geschlossen war, aber hier. Früher habe ich Print verwendet, als ich anfing, aber das ist es. Der Hauptunterschied zwischen den beiden: echo ‘one’, ‘two’; vollkommen legal; drucke ‘eins’, ‘zwei’; wirft einen Parsing-Fehler. Hoffe das hilft dir weiter.

    – frostigwunderbar

    3. Juli 2011 um 4:47 Uhr

  • Nun, mit dem Obigen werden Sie feststellen, dass mehrere Echo-Anweisungen einfach durch ein Komma getrennt werden, was sie tatsächlich besser macht als mehrere Echo- oder Druckaufrufe oder sogar Verkettungen mit “.”. Dann gibt es die gefürchteten Inline-Funktionen, die selbst Strings ausgeben. Z.B. print ‘line’.func().’Up’; Dadurch wird die Ausgabe von func() vor dem Rest der Anweisung angezeigt. Sie können die Anweisung aufteilen, aber die Verwendung von Kommas mit Echo erspart Ihnen all diese Kopfschmerzen.

    – frostigwunderbar

    3. Juli 2011 um 4:58 Uhr

Tatsächlich unterscheiden sich Echo und Print in ihrer Struktur. Print gibt einen Wert ähnlich wie eine normale Funktion zurück. Aber trotz allgemeiner Überzeugung ist Print keine Funktion, wie wir an der Tatsache sehen können, dass es keine Klammern benötigt, um zu funktionieren (nicht zu verwechseln mit Printf). Print und Echo werden eigentlich beide Sprachkonstrukte genannt, obwohl das nicht heißen soll, dass wir Print nicht wie eine Funktion verhalten können.

Hier finden Sie weitere Referenzen:

http://www.learnphponline.com/php-basics/php-echo-vs-print

Allerdings nicht ganz vollständig. Print kann als Teil komplexer Konstrukte verwendet werden, wie z

($b) ? print “True” : print “False”;

wohingegen Echo dies nicht kann. Auch wenn Sie die Fehlerausgabe (@print”Test”;) verwenden möchten, können Sie echo nicht verwenden. Ansonsten – gute Infos.

  • warum diese Zeile ($b) ? drucke „Wahr“ : drucke „Falsch“; kann Echo nicht verwenden?

    – zhuanzhou

    3. Juli 2011 um 3:03 Uhr

  • @zhua: Weil Echo keinen Wert zurückgibt, während print dies tut.

    – Phönix

    3. Juli 2011 um 3:06 Uhr

  • Sie können Echo auf der linken Seite platzieren und es wird gut funktionieren. ZB

    echo ($b) ?  "True" : "False"; 

     immer noch dasselbe.  Aber ja, in bestimmten komplexen Situationen, in denen Sie zwei verschiedene Aktionen benötigen, können Sie echo.g nicht verwenden.  Aber ja, in bestimmten komplexen Situationen, in denen Sie zwei verschiedene Aktionen benötigen, können Sie echo nicht verwenden.

    – frostigwunderbar

    3. Juli 2011 um 4:34 Uhr

Benutzeravatar von Jason McCreary
Jason McCreary

Da steht nichts drin PHP-Dokumente um diese Behauptung zu unterstützen. Ein wesentlicher Unterschied zwischen den beiden besteht jedoch darin echo gibt keinen Wert zurück und print tut. So könnte man argumentieren echo ist deshalb effizienter.

Probier das aus PHP-Benchmark für weitere Informationen über echo vs print und andere interessante Vergleiche.

Am Ende laufen solche Dinge auf persönliche Konventionen hinaus. Welche Effizienz auch immer durch die Verwendung gewonnen wurde echo Über print ist im Vergleich zu anderen Bereichen des Codes mehr als wahrscheinlich trivial.

  • der Rückgabewert macht den Unterschied

    – Itay Moav-Malimovka

    3. Juli 2011 um 2:22 Uhr

  • @Itay, macht einen Unterschied zwischen den beiden - ja. Macht einen Unterschied in der Leistung, diesen Schluss würde ich nicht ziehen. Es gibt ein Argument für die Speicherung von Rückgabewerten, Frame-Stacks usw. Aber ich bin bereit zu glauben, dass im Fall von PHP der zugrunde liegende Code für echo und print ist identisch. Besonders seit print gibt immer 1 zurück

    – Jason McCreary

    3. Juli 2011 um 2:32 Uhr


In Leistungstests habe ich keinen Unterschied in der Geschwindigkeit zwischen gesehen print und echo in PHP, damit sie austauschbar sind. Wirklich ist es persönliche Vorliebe. In freier Wildbahn habe ich gesehen, dass sich Programmierer strikt an PHP halten echo und mehrsprachige Programmierer (falls das ein Ausdruck ist) verwenden beides.

Weil man solche Dinge auf Blogs liest, die gerne über Mikrooptimierungen reden. Vorzeitige Optimierungen sollten Sie unbedingt vermeiden, da sich der Aufwand nicht lohnt => Sie sollten nach berühmten Zitaten googlen http://en.wikipedia.org/wiki/Tony_Hoare. Sie sollten Ihre niedrig hängenden Früchte nur dann angehen, wenn Sie Leistungsprobleme haben, und aufhören, Ihre Zeit mit dem Lesen solcher Blogs zu verschwenden. Der Schöpfer von PHP hat ein paar Präsentationen dazu gegeben =>
http://www.archive.org/details/simple_is_hard

Mittlerweile ist es ein ziemlich altes Video, aber immer noch sehr gut, wenn ihr mich fragt.

1387590cookie-checkWarum einige berühmte Programme immer print verwenden [closed]

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

Privacy policy