echo

(PHP 4, PHP 5, PHP 7)

echoGibt einen oder mehrere Strings aus

Beschreibung

echo ( string $arg1 [, string $... ] ) : void

Gibt alle Parameter aus. Es wird kein zusätzlicher Zeilenumbruch angehängt.

echo ist nicht wirklich eine Funktion sondern ein Sprach-Konstrukt, daher ist es nicht notwendig, Klammern zu verwenden. echo verhält sich im Gegensatz zu einigen anderen Sprach-Konstrukten nicht wie eine Funktion, deshalb kann es nicht immer in einem Funktionskontext verwendet werden. Hinzu kommt, dass bei der Angabe mehrerer Parameter für echo diese nicht von Klammern umschlossen sein dürfen.

echo besitzt zusätzlich eine Syntax-Kurzform, Sie können also ein öffnendes PHP-Tag von einem Gleichheitszeichen gefolgt notieren. Vor PHP 5.4.0 funktioniert diese Syntax-Kurzform nur, wenn short_open_tag in der php.ini eingeschaltet ist.

Ich habe <?=$foo?> foo.

Der Hauptunterschied zu print ist, dass echo eine Liste von Argumenten entgegennimmt, und keinen Rückgabewert hat.

Parameter-Liste

arg1

Der auszugebende Parameter.

...

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 echo-Beispiele

<?php
echo "Hallo Welt";

// Zeichenketten können entweder individuell als mehrere Argumente oder
// miteinander verbunden als einzelnes Argument übergeben werden
echo 'Dieser ''String ''besteht ''aus ''mehreren Parametern.'chr(10);
echo 
'Dieser  ' 'String ' 'wurde ' 'mit ' 'Stringverkettung erzeugt.' "\n";

// Da echo sich nicht wie eine Funktion verhält, ist der folgende Code ungültig.
($eine_variable) ? echo 'true' : echo 'false';

// Folgende Beispiele funktionieren hingegen:
($eine_variable) ? print 'true': print 'false' ;   // print ist ebenfalls ein
                         // Konstrukt, aber es verhält sich wie eine Funktion,
                         // so dass es in diesem Kontext verwendet werden kann
echo $eine_variable 'true''false';            // Das Statement herumgedreht
?>

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Tipp

Ein Vorteil beim Übergeben mehrerer Argumente gegenüber der Verwendung von Zeichenkettenverknüpfung in echo betrifft die Rangfolge des Punkt-Operators in PHP. Werden mehrere Argumente übergeben, dann sind die Klammern nicht nötig, um die richtige Rangfolge zu gewährleisten:

<?php
echo "Summe: "2;
echo 
"Hallo ", isset($name) ? $name "Max Mustermann""!";

Im Fall von Zeichenkettenverknüpfung hat der Punkt-Operator eine höhere Rangfolge als Addition und der ternäre Operator, so dass für das korrekte Verhalten Klammern verwendet werden müssen:

<?php
echo 'Summe: ' . (2);
echo 
'Hallo ' . (isset($name) ? $name 'Max Mustermann') . '!';

Siehe auch