sql >> Databasteknik >  >> RDS >> Mysql

Varför körs PHP-koden före HTML?

echo gör OMEDELBART utmatning. Om du försöker eka en funktion som själv gör ett eko, exekveras funktionens eko FÖRST. t.ex.

function foo() {
   echo 'foo';
}

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

och körs som motsvarigheten till

echo 'foo';
echo 'bar';

Varför? Eftersom echo måste först konstruera strängen som matas ut. Så före bar kan eko måste föräldraekot anropa foo() . Den funktionen returnerar ingenting, den utför helt enkelt sitt eget eko. flera echo samtal koordinerar inte med varandra, så foo's eko gör dess utdata. sedan returnerar foo ingenting till föräldraekot, så du gör echo 'bar' . null , och mata ut bar .

Om du hade detta:

function bar() {
   return 'bar';
}

echo 'foo' . bar();

det skulle fungera som förväntat. Körsekvensen skulle vara:

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


  1. PG::ForeignKeyViolation:FEL:uppdatera eller ta bort på tabell xxx bryter mot begränsningen för främmande nyckel

  2. Konvertera en avgränsad sträng (eller kolumn) till rader i Oracle med hjälp av en fördefinierad systemfunktion

  3. bevilja för att skapa synonymer på ett annat schema (Oracle)

  4. Varför mysql INSERT ... PÅ DUPLIKATNYCKELUPPDATERING kan bryta RBR-replikering på en master/master-konfiguration