echo
Das Schlüsselwort „echo" in PHP gibt eine oder mehrere Zeichenketten aus. Syntax, Unterschiede zu „print" und häufige Fallstricke erklärt.
Die PHP-Anweisung echo
echo ist der gebräuchlichste Weg, um aus einem PHP-Skript eine Ausgabe an den Browser (oder die Konsole) zu senden. Es handelt sich um ein Sprachkonstrukt, keine echte Funktion – deshalb wird es häufig ohne Klammern verwendet. Diese Seite erklärt die Syntax, den Unterschied zu print, das Kurztag <?= ?> und häufige Stolpersteine für Einsteiger.
Wenn Sie neu im Ausgeben von Daten in PHP sind, empfiehlt sich auch ein Blick auf PHP echo und print für einen direkten Vergleich sowie auf PHP-Variablen, um die auszugebenden Werte besser zu verstehen.
Syntax
echo expression1, expression2, ...;- Argumente werden durch Kommas getrennt.
- Da
echoein Sprachkonstrukt ist, sind Klammern optional.echo "Hi";undecho("Hi");funktionieren beide – beachten Sie jedoch, dassecho("a", "b");ein Syntaxfehler ist, da Klammern nur ein einzelnes Argument umschließen können.
Grundlegende Ausgabe
<?php
echo "Hello World!"; // Hello World!
echo "\n"; // newline
echo "Hello", " ", "World!"; // Hello World!Mehrere durch Kommas getrennte Argumente zu übergeben ist geringfügig schneller als das Zusammensetzen einer Zeichenkette mit dem Verkettungsoperator (.), weil PHP die verbundene Zeichenkette dabei nicht zuerst erstellen muss.
Variablen ausgeben
<?php
$name = "John";
$age = 30;
// Concatenation with the . operator
echo "My name is " . $name . " and I am " . $age . " years old.";Innerhalb von doppelt zitierten Zeichenketten interpoliert PHP Variablen auch direkt, was oft übersichtlicher ist als die Verkettung:
<?php
$name = "John";
echo "Hello, $name!"; // Hello, John!
echo "Hello, {$name}san!"; // Hello, Johnsan! (braces clarify the variable name)Einfach zitierte Zeichenketten interpolieren nicht – echo 'Hello, $name'; gibt den wörtlichen Text Hello, $name aus. Die vollständigen Regeln finden Sie unter PHP-Strings.
Das Kurztag <?= ?>
Wenn Sie PHP in HTML einbetten, ist <?= ?> eine Kurzschreibweise für <?php echo ?>. Es ist in PHP standardmäßig aktiviert und der idiomatische Weg, um einen einzelnen Wert in einem Template auszugeben:
<p>Welcome, <?= $username ?>!</p>
<!-- equivalent to: -->
<p>Welcome, <?php echo $username; ?>!</p>echo vs. print
Beide erzeugen Ausgaben, unterscheiden sich jedoch in einigen Punkten:
| Merkmal | echo | print |
|---|---|---|
| Mehrere Argumente | Ja (kommagetrennt) | Nein (nur eines) |
| Rückgabewert | Keiner | Gibt immer 1 zurück |
| In Ausdrücken verwendbar | Nein | Ja (z. B. $ok = print "Hi";) |
| Geschwindigkeit | Geringfügig schneller | Geringfügig langsamer |
Da print den Wert 1 zurückgibt, kann es in einem Ausdruck vorkommen; echo hingegen nicht. Weitere Details finden Sie unter Die PHP-Anweisung print.
Häufige Stolpersteine
- Es wird kein Wert zurückgegeben.
$x = echo "Hi";ist ein fataler Fehler –echokann weder zugewiesen noch in Ausdrücken verwendet werden. - Klammern mit Kommas schlagen fehl.
echo("a", "b");ist ungültig; lassen Sie die Klammern weg:echo "a", "b";. - Benutzereingaben maskieren. Nicht vertrauenswürdige Daten direkt in HTML auszugeben öffnet XSS-Lücken. Übergeben Sie sie zunächst an
htmlspecialchars():echo htmlspecialchars($comment);. PHP_EOLvs."\n". Verwenden Sie die KonstantePHP_EOL, wenn Sie das für das aktuelle Betriebssystem korrekte Zeilenende benötigen (zum Beispiel beim Schreiben auf die Konsole statt in einen Browser).