Corsi on-line

Differenze sintattiche e funzionali tra sintassi Nowdoc ed Heredoc in PHP

La sintassi Nowdoc, ne abbiamo già parlato riferendoci allo static datacontext, è stata introdotta in PHP con la versione 5.3.0 (ad oggi è già disponibile da qualche tempo la 5.4.x) ma non ha goduto di tantissima pubblicità, per cui risulta ancora oggi sottoutilizzata; sostanzialmente la Nowdoc presenta molti punti in comune con la più nota Heredoc, ma se ne differenzia per il fatto di non effettuare alcuna azione di parsing del contenuto delimitato.

Questa caratteristica rende la Nowdoc particolarmente indicata per l’embedding di codice sorgente o altri contenuti testuali senza la necessità di effettuare alcun escape. Così come in Heredoc, anche Nowdoc si utilizza l’identificatore “<<<“; quest’ultimo sarà però seguito da una sequenza arbitraria compresa tra apici singoli (ad esempio: <<<‘EOD’) che in Heredoc non prevede invece delimitazione o può essere opzionalmente delimitata da doppi apici (ad esempio: <<<EOD o <<<“EOD”).

Un semplice esempio di utilizzo di Nowdoc potrebbe essere il seguente:

echo <<<'EOD'
Ora stampa "$variabile", poi $obj->pippo.
Ultimo output: {$obj->pluto[o]}.
EOD;

Il risultato generato sarà il segunte:

Ora stampa "$variabile", poi $obj->pippo. Ultimo output: {$obj->pluto[o]}.

Il tutto senza alcuna “esplosione” di variabile, oggetto o valore di array, anche in caso di utilizzo delle Curly braces e, soprattutto, senza la necessità di una precedente inizializzazione per evitare le generazione di errori.

Post correlati
I più letti del mese
Tematiche