sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué el código PHP se ejecuta antes que el HTML?

echo hace salida INMEDIATA. Si intenta hacer eco de una función que a su vez hace un eco, el eco de la función se ejecuta PRIMERO. por ejemplo

function foo() {
   echo 'foo';
}

echo 'bar' . foo();   // output foobar

y se ejecuta como el equivalente de

echo 'foo';
echo 'bar';

¿Por qué? Porque echo primero tiene que construir la cadena de salida. Así que antes de la bar se puede hacer eco, el eco padre tiene que llamar a foo() . Esa función no devuelve nada, simplemente realiza su propio eco. múltiples echo las llamadas no se coordinan entre sí, por lo que el eco de foo hace su salida. luego foo no devuelve nada al eco principal, por lo que está haciendo echo 'bar' . null y salida bar .

Si tuvieras esto:

function bar() {
   return 'bar';
}

echo 'foo' . bar();

funcionaría como se esperaba. La secuencia de ejecución sería:

$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar