Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que o código PHP está sendo executado antes do HTML?


echo faz saída IMEDIATA. Se você tentar ecoar uma função que faz um eco, o eco da função será executado PRIMEIRO. por exemplo.
function foo() {
   echo 'foo';
}

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

e é executado como o equivalente de
echo 'foo';
echo 'bar';

Por quê? Porque echo primeiro tem que construir a string que está sendo produzida. Então, antes de bar pode ser ecoado, o eco pai deve chamar foo() . Essa função não retorna nada, ela simplesmente executa seu próprio eco. vários echo chamadas não coordenam entre si, então o echo de foo faz sua saída. então foo não retorna nada para o pai echo, então você está fazendo echo 'bar' . null , e saída bar .

Se você tivesse isso:
function bar() {
   return 'bar';
}

echo 'foo' . bar();

funcionaria como esperado. A sequência de execução seria:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar