Pubblicato il

Notazione heredoc: sistema per specificare stringhe in php

Autori

Sono disponibili tre sistemi per specificare un valore di stringa

  1. virgolette singole
  2. virgolette doppie
  3. notazione heredoc

Nel primo sistema non sono supportati né l’escaping né l’estensione; quindi ‘\A’ visualizza solo i due caratteri. Le stringhe con virgolette doppie sono simili a quelle con virgolette singole, a parte il fatto che l’interprete del linguaggio PHP le analizza per trovare e sostituire le sequenze di escape e le variabili.

Il terzo sistema per includere le stringhe in uno script PHP è un’innovazione riscontrabile in linguaggi come Perl. Esclude gli apici come delimitatori, e questo è sicuramente un vantaggio perchè ci permette di sfruttarli per ulteriori annidamenti. Le stringhe heredoc si comportano come le stringhe delimitate da vingolette doppie anche se non è necessario applicare l’escaping ad altrettanti caratteri: è sufficiente effettuare l’escaping dei caratteri $.

In questo caso una stringa inizia con <<< e un identificatore e continua finché PHP non incontra una riga di testo di input che consiste solo nello stesso identificatore allineato a sinistra e in un punto e virgola, senza spazi prima o dopo il (;). L’identificatore ha un unico vincolo: deve contenere solo lettere, numeri e underscore e il primo carattere deve essere una lettera o un underscore.

Nel caso di stringhe di un certo ‘peso‘, la notazione heredoc è sicuramente il migliore delimitatore di stringhe: è l’ideale per la stesura di grossi blocchi di codice html o javascript (da inviare poi con un unico comando ‘echo’) pur mantenendo un certo ordine di codifica.

<?php
echo <<<HTML
    <p>
        Lorem Ipsum is simply dummy text of the printing and
        typesetting industry. Lorem Ipsum has been the industry's
        standard dummy text ever since the 1500s, when an unknown
        printer took a galley of type and scrambled it to make a
        type specimen book.
    </p>
HTML;
?>