PHP la sintassi Heredoc genera un errore strano

05 marzo 2015

​PHP permette di delimitare una stringa, oltre che con i classici caratteri ' (apice) o " (virgolette doppie), mediante la sintassi heredoc . Questa consiste nello scegliere a piacere un delimitatore ad es. EOQ e racchiudere la nostra sequenza di caratteri in questo modo:
            
$striga = <<Questa è une stringa hredoc
è possibile usare le virgolette doppie " senza escape
è possibile espandere le variabili $mivar
EOQ;
​Il vantaggio di questo tipo di sintassi lo si ha quando la stringa è molto lunga, in quanto non necessita di escape per i caratteri ' o " ed effettua l'espansione delle variabili in modo simile alle virgolette doppie.

Attenzione, per evitare errori criptici tipo "Parse error: syntax error, unexpected end of file..." il delimitatore EOQ; finale non deve essere nè preceduto nè seguito da altri caratteri, neppure spazi.