In PHP sind echo und print die gängigen Aufrufe, um eine Ausgabe zu erwirken. Aber wo liegt der Unterschied? Wir haben die beiden Sprachkonstrukte unter die Lupe genommen.
Auch, wenn echo
und print
bei erster Anwendung ident scheinen, unterscheiden sie sich wesentlich in der Theorie. In der überwiegenden Mehrheit aller Anwendungsfälle lassen sich die beiden Befehle zwar beliebig durch den jeweils anderen ersetzen, aber eben nicht immer. Wir möchten die bedeutenden Unterschiede kurz erläutern:
Funktion oder Sprachkonstrukt?
Gleich vorweg: Sowohl echo
als auch print
sind Sprachkonstrukte, wenngleich in diversen Fachartikeln behauptet wird, dass print
eine „echte Funktion“ sei. Tatsächlich verhält sich dieses Sprachkonstrukt nur wie eine Funktion. Es lässt sich auch mit Klammern aufrufen und hat immer einen Rückgabewert. Aber der Umstand, dass print
ohne runde Klammern aufgerufen wird (bzw werden kann), stellt ein syntaktisches Ausschlusskriterium dar.
Verhalten von echo und print
Das Sprachkonstrukt echo
erwirkt eine Ausgabe und ist ansonsten für die Programmierlogik quasi nicht existent.
print
versucht, eine Ausgabe zu erwirken und im Erfolgsfall (und da gibt es praktisch keine Ausnahme) den Integer-Wert 1 zurückzugeben. Nachfolgendes Code-Segment zeigt, wie die beiden Sprachkonstrukte zueinander stehen. Wir möchten an dieser Stelle noch einmal darauf hinweisen, dass print
lediglich funktionsähnliches Verhalten aufweist, aber keine Funktion ist. Wir stellen es nur als solche dar, um den Zusammenhang der Kernfunktionalität zu verdeutlichen.
<?php
function print($x){
echo $x;
return 1;
}
?>
echo != print
Ein einfaches Beispiel zeigt, dass echo
nicht automatisch mit print
ausgetauscht werden kann:
<?php
// vergleiche
echo print 'a';
// mit
print echo 'a';
?>
PHP Performance-Vergleich: echo oder print
Für einfache Ausgaben, wo beide Sprachkonstrukte funktionieren, ist jedenfalls echo
vorzuziehen. Unsere ausführlichen Performance-Tests haben gezeigt, dass es ziemlich genau um 10% schneller als print
arbeitet. Grund dafür dürfte wohl der Rückgabewert sein, der im Wesentlichen den Unterschied ausmacht.
Fazit
Hinsichtlich Gesamt-Performance eines Skripts ist diese Kostenstelle zwar vernachlässigbar, aber warum nicht auch hier optimieren? Praktisch spricht alles für echo
und nichts für print
. Dort, wo syntaktisch erforderlich, lässt sich das Skript leicht auf echo
umschreiben. In aller Regel erhöht das nicht nur die Performance, sondern auch die Übersichtlichkeit.
13. August 2012 | Webentwicklung
Kostenlose Erstberatung vereinbaren
- +43 1 9241687
Reden Sie mit uns
- E-Mail-Adresse lädt...
Schreiben Sie uns
- Loquaiplatz 12 1060 Wien
Besuchen Sie uns