Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum wird der PHP-Code vor dem HTML ausgeführt?

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ührt
echo '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