echo
laver STRAKS output. Hvis du forsøger at ekko en funktion, som selv laver et ekko, udføres funktionens ekko FØRST. f.eks.
function foo() {
echo 'foo';
}
echo 'bar' . foo(); // output foobar
og udføres som ækvivalent til
echo 'foo';
echo 'bar';
Hvorfor? Fordi echo
først skal konstruere strengen, der udlæses. Så før bar
kan gentages, skal forældreekkoet kalde foo()
. Den funktion returnerer ikke noget, den udfører blot sit eget ekko. flere echo
opkald koordinerer ikke med hinanden, så foo's ekko udfører sit output. så returnerer foo intet til forældreekkoet, så du laver echo 'bar' . null
, og output bar
.
Hvis du havde dette:
function bar() {
return 'bar';
}
echo 'foo' . bar();
det ville fungere som forventet. Udførelsessekvensen ville være:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar