Start · Sprachen · PHP · Referenz · echo

echo

Funktion

Gibt einen oder mehrere Strings direkt an den Ausgabepuffer aus, ohne einen Rückgabewert zu liefern.

seit PHP 4.0.0 Kategorie: string

Signatur

echo string $value, string ...$values

Beschreibung

echo ist ein Sprachkonstrukt (keine Funktion) und gibt einen oder mehrere durch Komma getrennte Strings an den aktuellen Ausgabepuffer aus. Im Unterschied zu print liefert echo keinen Rückgabewert und kann daher nicht innerhalb eines Ausdrucks verwendet werden.

Da echo eine Sprachkonstrukt ist, können die Klammern weggelassen werden. Bei mehreren Argumenten sind Klammern sogar verboten – nur die Ein-Argument-Form erlaubt optionale Klammern: echo('Hallo'). Die Kurzschreibweise <?= $variable ?> ist ein Alias für <?php echo $variable; ?> und in Templates sehr verbreitet.

echo konvertiert übergebene Werte automatisch in Strings. Arrays, Objekte ohne __toString()-Methode oder andere nicht-stringifizierbare Typen lösen einen Fehler aus. Für die formatierte Ausgabe empfiehlt sich printf() oder sprintf(), während echo für einfache, direkte Ausgaben die performanteste Wahl ist.

In umfangreichen Ausgaben – etwa in HTML-Templates – kann echo mit der Heredoc- oder Nowdoc-Syntax kombiniert werden, um mehrzeilige Strings übersichtlich auszugeben.

Parameter

Name Typ Default Beschreibung
$value Pflicht string Der erste (oder einzige) auszugebende String. Nicht-String-Werte werden automatisch zu Strings konvertiert.
$values string Beliebig viele weitere, durch Komma getrennte Strings, die nacheinander ausgegeben werden. Nur als Sprachkonstrukt ohne Klammern nutzbar.

Rückgabewert

Typ
void
Beschreibung
echo hat keinen Rückgabewert. Es kann daher nicht als Teil eines Ausdrucks eingesetzt werden.

Beispiele

Einfache Textausgabe

<?php
echo "Hallo, Welt!";
echo "\n";
echo 'PHP ', 'ist ', 'toll';
Hallo, Welt! PHP ist toll

Variablen und Ausdrücke ausgeben

<?php
$name = 'Anna';
$alter = 28;
echo "Name: $name, Alter: $alter\n";
echo 'Summe: ' . (3 + 4) . "\n";
Name: Anna, Alter: 28 Summe: 7

Kurzschreibweise in HTML-Templates

<?php
$titel = 'Meine Seite';
$beschreibung = 'Willkommen auf meiner PHP-Seite!';
?>
<!DOCTYPE html>
<html>
<head><title><?= htmlspecialchars($titel) ?></title></head>
<body>
<h1><?= htmlspecialchars($beschreibung) ?></h1>
</body>
</html>
<!DOCTYPE html> <html> <head><title>Meine Seite</title></head> <body> <h1>Willkommen auf meiner PHP-Seite!</h1> </body> </html>

Heredoc-Syntax für mehrzeilige Ausgaben

<?php
$produkt = 'Laptop';
$preis = 999.99;
echo <<<EOT
Produkt: $produkt
Preis:   {$preis} EUR
EOT;
Produkt: Laptop Preis: 999.99 EUR

// Wichtig · Fallstricke

Sicherheit: Niemals unkontrollierte Benutzereingaben direkt mit echo ausgeben – das führt zu Cross-Site-Scripting (XSS). Eingaben immer mit htmlspecialchars() oder htmlentities() escapen, bevor sie in HTML-Kontext ausgegeben werden.

Kein Rückgabewert: Da echo void zurückgibt, kann es nicht als Argument einer anderen Funktion oder in Ausdrücken verwendet werden – dafür eignet sich print (gibt immer 1 zurück) oder besser sprintf().

Performance: Bei vielen kleinen Ausgaben kann der Einsatz von ob_start() und gepufferter Ausgabe die Performance verbessern. Mehrere Argumente an echo zu übergeben ist minimal schneller als Strings zu verketten und dann auszugeben.