Tali letterali stringa sono interpretati come se fossero racchiusi fra doppi apici ma senza che vi siano i doppi apici. Quindi godono delle sequenza di escape della suddetta forma, ad esclusione della sequenza \" che non ha più motivo di esistere, e del parsing delle variabili che analizzeremo in un prossimo post.
Ad esempio:
$stringa = <<<Etichetta_Letterale_Stringa
Questo è il letterale stringa racchiuso fra etichette.
Da osservare che è interpretato come un letterale racchiuso tra ", ma utilizzando le etichette, il carattere " non ha bisogno della sequenza di escape. Ciò è particolarmente utile nella scrittura di codice HTML in cui formalmente il " racchiude i valori degli attributi dei tag sebbene sia consentito l'uso del ' e per alcuni valori non costituisca un problema l'assenza. Ad esempio
<span class="evidenzia">testo evidenziato</span>
Etichetta_Letterale_Stringa;
Attenzione: l'etichetta di chiusura del letterale deve trovarsi in prima colonna e non può essere indentata, altrimenti l'interprete PHP non rileverà la chiusura del blocco di testo.
$n=5
$str = <<<PIPPO
Questo è il blocco $n
Hello World!
PIPPO;
In modo implicito l'interprete PHP applica le regole utilizzate per i letterali fra doppi apici, quindi nell'esempio precedente il $n all'interno del letterale è sostituito dal valore della variabile a meno che non si anteponga un back slash al simbolo $.
Nella produzione della stringa in output, i salti riga sono anch'essi prodotti. D'altra parte ciò che si produce è un sorgente da sottoporre all'interpretazione del Browser Web. In tal caso il salto riga è rappresentato a video solo se codificato nel sorgente in codice HTML quale tag <br /> o <br>, così come gli spazi multipli sono rappresentati da un solo spazio a meno che non siano codificati come per ogni spazio. Potremo quindi osservare i salti riga e gli spazi vuoti solo chiedendo al Browser Web di visualizzare il sorgente.
Da PHP 5.3 è però possibile chiedere esplicitamente all'interprete PHP di adottare un preciso metodo d'interpretazione nel valutare il letterale stringa. A tal fine occorre racchiudere la prima etichetta fra apice singolo se si desidera che il letterale sia interpretato con le regole dei letterali stringa tra apici singoli o esplicitare l'interpretazione come letterale fra apice doppio racchiudendo fra apice doppio la prima etichetta
Ad esempio:
$n = 5
$str1 = <<<'EOT'
Ti ho pensato $n volte
\' equivale a \' non ha motivo di esistere l'escaping per l'apice singolo
\\ equivale a \\ ossia non esistendo più l'escaping precedente, anche questo cessa di esistere
EOT;
//Questa forma è equivalente a quella senza l'uso di apici intorno all'etichetta
$str2 = <<<"EOT"
Ti ho pensato $n volte
EOT;
Dato che il letterale è fisicamente racchiuso tra le etichette e non fra gli apici, nell'interpretazione del letterale come racchiuso tra apici singoli non ha più senso la sequenza di escape \' e come conseguenza decade anche la \\ (non è prevista nessuna sequenza di escape). Nel caso di interpretazione del letterale come racchiuso fra apici doppi non è più prevista la sola sequenza di escape \".