Direi che sta quasi diventando una disputa filosofica, dove ognuno ha una sua verità soggettiva e la verità assoluta non esiste...
Esaminiamo questa porzione di codice:
PHP:
funzione()
{
echo "Funzione ";
return "risultato";
}
echo "Echo: " . funzione();
Viene dichiarata una funzione
funzione() (largo alla fantasia) che ha come compito di stampare a video la stringa "
Funzione " e che ritorna come risultato "
risultato".
Alla base di tutto c'è la concatenazione di stringhe. Per poter concatenare il risultato di funzione() a "Echo", per prima cosa il PHP deve eseguire funzione(), giusto? E che cosa fa funzione()?! Stampa a video "Funzione ", e ritorna "risultato" che verrà concatenato a "Echo" e quindi il risultato della concatenazione viene stampato a video.
Per cui, secondo questo ragionamento:
1) Stampa a video "Funzione "
2) Concatenazione "Echo: " . "risultato"
3) Stampa a video "Echo: risultato"
E quindi il risultato finale dovrebbe essere:
Funzione Echo: risultato
O sbaglio?
Il fatto di voler sapere le versioni di PHP è solo per capire se ci possono essere delle discrepanze a livello di precedenze negli operatori tra diverse versioni...