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

Perché il codice PHP viene eseguito prima dell'HTML?

echo produce IMMEDIATO. Se si tenta di eseguire l'eco di una funzione che a sua volta esegue un'eco, l'eco della funzione viene eseguito per PRIMO. es.

function foo() {
   echo 'foo';
}

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

e viene eseguito come l'equivalente di

echo 'foo';
echo 'bar';

Come mai? Perché echo prima deve costruire la stringa in uscita. Quindi prima di bar può essere ripetuto, l'eco genitore deve chiamare foo() . Quella funzione non restituisce nulla, esegue semplicemente la propria eco. più echo le chiamate non si coordinano tra loro, quindi l'eco di foo fa il suo output. quindi foo non restituisce nulla all'eco genitore, quindi stai facendo echo 'bar' . null e genera bar .

Se avessi questo:

function bar() {
   return 'bar';
}

echo 'foo' . bar();

funzionerebbe come previsto. La sequenza di esecuzione sarebbe:

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