echo
macht SOFORT-Ausgabe. Wenn Sie versuchen, eine Funktion zu echoen, die selbst ein Echo erzeugt, wird das Echo der Funktion ZUERST ausgeführt. z. B.
function foo() {
echo 'foo';
}
echo 'bar' . foo(); // output foobar
und wird als Äquivalent von
ausgeführtecho 'foo';
echo 'bar';
Wieso den? Denn echo
muss zuerst den auszugebenden String konstruieren. Also vor bar
ausgegeben werden kann, muss das übergeordnete Echo foo()
aufrufen . Diese Funktion gibt nichts zurück, sie führt einfach ihr eigenes Echo aus. mehrfaches echo
Aufrufe koordinieren nicht miteinander, also macht foo's Echo seine Ausgabe. dann gibt foo nichts an das übergeordnete echo zurück, also machst du echo 'bar' . null
, und geben Sie bar
aus .
Wenn Sie dies hatten:
function bar() {
return 'bar';
}
echo 'foo' . bar();
es würde wie erwartet funktionieren. Die Ausführungsreihenfolge wäre:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar