(PHP 4, PHP 5, PHP 7)
echo — Gibt einen oder mehrere Strings aus
$arg1
[, string $...
] ) : voidGibt 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.
arg1
Der auszugebende Parameter.
...
Es wird kein Wert zurückgegeben.
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
?>
Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.
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: ", 1 + 2;
echo "Hallo ", isset($name) ? $name : "Max Mustermann", "!";
Im Fall von Zeichenkettenverknüpfung hat der Punkt-Operator dieselbe Rangfolge wie der Additionsoperator, aber eine höhere Rangfolge als der ternäre Operator, so dass für das korrekte Verhalten Klammern verwendet werden müssen:
<?php
echo 'Summe: ' . (1 + 2);
echo 'Hallo ' . (isset($name) ? $name : 'Max Mustermann') . '!';