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