Stringhe
La dichiarazione di una stringa avviene in modo del tuttoanalogo a quella di qualsiasi altra variabile con l'unicadifferenza che il valore da attribuire ad una variabile ditipo string deve essere racchiuso tra virgolette o tra apici.Per quanto riguarda le differenze tra l'utilizzo divirgolette e apici, vale quanto detto nel capitolo 4, doveabbiamo introdotto il concetto di variabile. Di seguito sonoriportate due dichiarazioni di tipo stringa entrambe valide.La prima fa uso delle virgolette e la seconda degli apici.
$str1 = "Questa è una variabile di tipo string";$str2 = 'Anche questa è una variabile di tipo string';
Nel capitolo 4 avevamo detto che il PHP interpreta quantocontenuto tra le virgolette e effettua le eventualisostituzioni, mentre lascia inalterato quanto contenutoall'interno degli apici. Analizziamo qualche esempio alfine di cominciare a familiarizzare con questo modo dioperare. Osservate gli script che seguono e provate adindovinarne l'output.
$Civico = 8;$Indirizzo = "Via Tespi, $Civico";echo 'Il mio indirizzo è $Indirizzo';
L'output di questo script è il seguente:
Il mio indirizzo è $indirizzo
Se non siete cascati nel tranello vuol dire che avete capitobene come funzionano virgolette e apici. Se invece vi statechiedendo perché sia stato visualizzato il nome dellavariabile anziché il proprio valore la rispostaè semplice: PHP non interpreta quanto contenutoall'interno degli apici, bensì lo tratta comesemplice testo.
Passiamo al secondo script.
$Civico = 8;$Indirizzo = "Via Tespi, $Civico";echo "$Indirizzo";
L'output di questo script è il seguente:
Il mio indirizzo è Via Tespi, 8
Avendo sostituito gli apici con le virgolette nella terzariga, il PHP interpreta quanto contenuto all'internorimpiazzando il nome della variabile $Indirizzo con il suovalore.
Con quanto illustrato fino a questo punto potrebbe sorgerviun dubbio: la sintassi descritta non permette di scriveretutto. Infatti c'è ancora qualcosa da aggiungere.Partiamo da un esempio. Supponiamo di voler scrivere qualcosadel tipo:
Il valore della variabile $Indirizzo è Via Tespi, 8
Non è possibile utilizzare le virgolette, in quanto loscript:
$Civico = 8; $Indirizzo = "Via Tespi, $Civico"; echo "Il valore della variabile $Indirizzo è $indirizzo";
restituirebbe come output:
Il valore della variabile Via Tespi, 8 è Via Tespi, 8
Allo stesso tempo non potremmo utilizzare gli apici in quantolo script:
$Civico = 8;$Indirizzo = "Via Tespi, $Civico";echo 'Il valore della variabile $Indirizzo è $indirizzo';
restituirebbe come output:
Il valore della variabile $indirizzo è $Indirizzo
Potrebbe invece funzionare qualcosa del genere:
$Civico = 8;$Indirizzo = "Via Tespi, $Civico";echo 'Il valore della variabile $Indirizzo';echo " è $indirizzo";
che effettivamente fornisce l'output:
Il valore della variabile $Indirizzo è Via Tespi, 8
Tuttavia risulta un po' troppo complicato. Esiste unastrada più semplice. PHP prevede, all'internodelle virgolette l'uso del carattere di escape(""), cioè permette di rappresentare alcunicaratteri speciali premettendo il carattere ""(backslash). Questo risolve anche il problema che ci eravamoposti, infatti lo script
$Civico = 8; $Indirizzo = "Via Tespi, $Civico"; echo "Il valore della variabile $Indirizzo è $indirizzo"
visualizzerà proprio:
Il valore della variabile $Indirizzo è Via Tespi, 8
Abbiamo quindi fatto uso delle virgolette e inserito ilcarattere "" subito prima del nome della variabileche volevamo non fosse interpretata.
Seguiremo una procedura analoga, ad esempio per costruire unastringa che contiene il carattere virgolette. Osservate loscript che segue:
$Civico = 8; $Indirizzo = "Via Tespi, $Civico"; echo "Il valore della variabile $Indirizzo è "$indirizzo""
Visualizzerà la riga:
Il valore della variabile $Indirizzo è "ViaTespi, 8"
Altri codici di escape da utilizzare per rappresentarecaratteri speciali, sono riportati in tabella 10.3.1.
| Codici di escape | |
| " | virgolette |
| newline | |
| carriage return | |
| tabulazione | |
| $ | dollaro |
| backslash | |
