PION » Webdesign News » PHP: echo oder print - der Vergleich

PHP: echo oder print - der Vergleich

PHP: echo oder print - der Vergleich

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