echo()
Das Schlüsselwort "echo" in PHP gibt einen oder mehrere Strings aus. Dieser Artikel erklärt Syntax und Verwendung von "echo" mit Beispielen.
Die PHP-echo-Anweisung
echo ist die gebräuchlichste Methode, um Ausgaben aus einem PHP-Skript an die Seite zu senden. Es handelt sich um ein Sprachkonstrukt, keine Funktion — es hat daher keinen Rückgabewert, und Klammern sind beim Aufruf nicht erforderlich. echo wird ständig verwendet: zum Ausgeben von Text, zum Anzeigen von Werten aus Variablen und zum Schreiben von HTML.
Diese Seite behandelt die Syntax, das unterschiedliche Verhalten bei einfachen und doppelten Anführungszeichen (ein häufiger Stolperstein für Einsteiger), den kurzen <?= ?> Tag und den Unterschied zwischen echo und print.
Syntax
echo expression;
echo expression1, expression2, ...;Da echo ein Sprachkonstrukt ist, wird es ohne Klammern aufgerufen:
echo "Hello"; // correct
echo("Hello"); // also works for a SINGLE argument
echo("a", "b"); // PARSE ERROR — parentheses can't wrap multiple args
echo "a", "b"; // correct way to pass multiple argumentsMehrere Werte werden durch Kommas getrennt übergeben — das ist etwas schneller als die Verkettung mit ., da kein temporärer string aufgebaut wird. Die Werte werden direkt hintereinander ausgegeben, ohne Trennzeichen.
Beispiele
Schauen wir uns einige praktische Beispiele an, wie das echo-Schlüsselwort verwendet werden kann:
Beispiele für PHP echo
<?php
// Example 1: Comma-separated arguments (native syntax)
echo "Hello World!", PHP_EOL;
// Output: Hello World!
// Example 2: String concatenation
$myName = "John";
$myAge = 30;
echo "My name is " . $myName . " and I am " . $myAge . " years old.";
// Output: My name is John and I am 30 years old.
// Example 3: Variables without quotes (comma-separated)
$greeting = "Hello";
$name = "World";
echo $greeting, " ", $name, "!";
// Output: Hello World!Einfache Anführungszeichen vs. doppelte Anführungszeichen
Die gewählte Anführungszeichenart beeinflusst, wie Variablen verarbeitet werden – das sollte man frühzeitig richtig verstehen. In doppelt notierten Strings wertet PHP Variablen und Escape-Sequenzen aus. In einfach notierten Strings geschieht das nicht — der Text wird buchstäblich ausgegeben.
<?php
$name = "World";
echo "Hello $name\n"; // Hello World (variable is interpolated)
echo 'Hello $name\n'; // Hello $name\n (printed verbatim, no newline)Verwende doppelte Anführungszeichen, wenn du Variableninterpolation möchtest; einfache Anführungszeichen (geringfügig schneller) eignen sich für einfachen, literalen Text. Unter PHP Strings findest du die vollständigen Regeln, einschließlich der Syntax mit geschweiften Klammern wie "{$user['name']}".
HTML ausgeben
Eine sehr häufige Aufgabe für echo ist das Ausgeben von HTML. Variablen lassen sich direkt in den Markup einbetten:
<?php
$title = "Welcome";
echo "<h1>$title</h1>";
// Output: <h1>Welcome</h1>Bei größeren HTML-Blöcken ist es in der Regel übersichtlicher, PHP vollständig zu verlassen (?> ... <?php), anstatt jede Zeile mit echo auszugeben.
Der kurze Echo-Tag
Das Kürzel <?= ... ?> ist exakt gleichwertig mit <?php echo ... ?>. Es ist in allen unterstützten PHP-Versionen standardmäßig aktiviert und ideal für Templates:
<p>Hello, <?= $name ?>!</p>Dies ist die empfohlene Methode, um einen einzelnen Wert in ansonsten HTML-Dateien auszugeben.
echo vs. print
echo und print sehen ähnlich aus, unterscheiden sich aber in Details:
echo | print | |
|---|---|---|
| Typ | Sprachkonstrukt | Sprachkonstrukt |
| Rückgabewert | keiner (void) | immer 1 |
| Mehrere Argumente | ja (echo $a, $b;) | nein |
| Verwendung in einem Ausdruck | nein | ja (da es einen Wert zurückgibt) |
Da print den Wert 1 zurückgibt, kann es innerhalb eines Ausdrucks verwendet werden: $ok = print "hi";. echo kann das nicht. In der Praxis wird echo für die allgemeine Ausgabe bevorzugt. Weitere Details im Vergleichsartikel echo vs print und in der print-Referenz.
Häufige Fallstricke
- Keine Klammern bei mehreren Argumenten.
echo("a", "b");führt zu einem Parse-Fehler; verwende stattdessenecho "a", "b";. echogibt nichts zurück. Du kannst nicht$x = echo "hi";schreiben. Nutzeprint(odersprintf()), wenn du einen Wert benötigst.- Einfache Anführungszeichen interpolieren nicht.
echo 'Total: $price';gibt das Literal$priceaus, nicht den Wert der Variablen.