Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi le code PHP s'exécute-t-il avant le HTML ?

echo fait une sortie IMMÉDIATE. Si vous essayez de faire écho à une fonction qui fait elle-même un écho, l'écho de la fonction s'exécute EN PREMIER. ex.

function foo() {
   echo 'foo';
}

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

et s'exécute comme l'équivalent de

echo 'foo';
echo 'bar';

Pourquoi? Parce que echo doit d'abord construire la chaîne en sortie. Donc avant bar peut être répercuté, l'écho parent doit appeler foo() . Cette fonction ne renvoie rien, elle effectue simplement son propre écho. plusieurs echo les appels ne se coordonnent pas les uns avec les autres, donc l'écho de foo fait sa sortie. puis foo ne renvoie rien au parent echo, donc vous faites echo 'bar' . null , et affichez bar .

Si vous aviez ceci :

function bar() {
   return 'bar';
}

echo 'foo' . bar();

cela fonctionnerait comme prévu. La séquence d'exécution serait :

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