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