[PHP] A scuola di PHP: le Stringhe

Rispondi
Roberto
Amministratore
Messaggi: 160
Iscritto il: 19/12/2009, 19:30

[PHP] A scuola di PHP: le Stringhe

Messaggio da Roberto »

Poiché le stringhe sono molto diffuse nelle applicazioni Web, PHP dispone di un supporto incorporato alla creazione ed alla manipolazione di stringhe. Una stringa e' una sequenza di caratteri di lunghezza arbitraria; essa puo' essere specificata in quattro modi differenti:
  • Virgolette singole;
  • Virgolette doppie;
  • Sintassi heredoc;
  • Sintassi nowdoc (a partire da PHP 5.3.0).
I primi due modi vengono utilizzati per manipolare variabili di tipo stringa, gli ultimi due modi vengono invece utilizzati per manipolare stringhe che contengano molto testo ed eventualmente molto codice html.

VIRGOLETTE SINGOLE

E' il modo piu' semplice per rappresentare una stringa, essa puo' essere sia stampata direttamente oppure memorizzata all'interno di una variabile:

Codice: Seleziona tutto

echo 'Questa e\' una stringa stampata direttamente';
oppure

Codice: Seleziona tutto

$stringa = 'Questa e\' una stringa stampata tramite una variabile';
echo $stringa;
Come e' possibile notare da questo semplice esempio per poter stampare il carattere della virgoletta singola e' necessario anteporre ad esso il carattere della barra inversa \. La concatenazione di variabili e stringhe letterali e' possibile nel seguente modo:

Codice: Seleziona tutto

$nome = 'Andrea';
echo 'Io sono ' . $nome;
Sarebbe infatti errata la sintassi echo 'Io sono $nome'; poiché si otterebbe in output il messaggio "Io sono $nome".

VIRGOLETTE DOPPIE

Se la stringa e' racchiusa tra virgolette doppie PHP oltre a stampare i caratteri letterali interpreta le variabili al suo interno ed i caratteri di escape:

Codice: Seleziona tutto

echo "Questa e' una stringa stampata direttamente";
oppure

Codice: Seleziona tutto

$stringa = "Questa e' una stringa stampata tramite una variabile";
echo $stringa;
Vista la proprieta' di interpretazione delle stringhe la concatenazione avviene nel seguente modo:

Codice: Seleziona tutto

$nome = 'Andrea';
echo "Io sono $nome";
oppure

Codice: Seleziona tutto

$nome = "Andrea";
echo "Io sono $nome";
SINTASSI HEREDOC

E' la soluzione migliore qualora si debba creare variabili stringa molto lunghe o contenente molto codice html. La sintassi e' molto semplice, basta anteporre alla stringa l'operatore <<< seguito da un identificatore letterale che verra' poi usato per comunicare dove finisce la stringa:

Codice: Seleziona tutto

$NOME_VARIABILE = <<<IDENTIFICATORE
STRINGA
IDENTIFICATORE;

echo $NOME_VARIABILE;
Puo' sembrare complicato ma non lo e', ecco infatti un semplice esempio:

Codice: Seleziona tutto

$stringa = <<<testoID
Esempio di una stringa che e' stampata
utilizzando la sintassi HEREDOC.
testoID;

echo $stringa;
Il vantaggio di questa notazione e' che non ci si deve preoccupare dei caratteri all'interno della stringa quindi risulta tutto piu' semplice e leggibile. Inoltre, come per l'esempio delle doppie virgolette, eventuali variabile all'interno della stringa vengono interpretate automaticamente.

Codice: Seleziona tutto

$nome = 'Laura';
$stringa = <<<nuovo
Esempio di una stringa con all'interno una variabile.
Il mio nome e' $nome.
nuovo;

echo $stringa;
SINTASSI NOWDOC

E' stata implementata a partire dalla versione PHP 5.3.0 ed e' simile ala sintassi HEREDOC ma si differenzia perche' non vengono interpretate le variabili all'interno della stringa, quindi il suo comportamento e' molto simile alle virgolette singole. La sua sintassi e' la seguente:

Codice: Seleziona tutto

$NOME_VARIABILE = <<<'IDENTIFICATORE'
STRINGA
IDENTIFICATORE;

echo $NOME_VARIABILE;
Rispondi