sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor køres PHP-koden før HTML?

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


  1. JDBC:fremmednøgle på PK oprettet i samme transaktion

  2. hvordan kan jeg vide, hvor mange rækker der vil opdatere sql påvirket, før jeg udfører det

  3. Variabel værditildeling ved hjælp af RETURNING-klausul

  4. Forbedrer Foreign Key forespørgselsydeevne?