29 Le stringhe

Esistono 3 modi per manipolare le stringhe, 2 li abbiamo già trattati

  • Con i doppi apici (“):
$nl ="<br />"

$riga = "$nl ....";

In questo caso, cone virgolette, il valore di $nl viene espanso e creerà uno spazio vuoto e i puntini, interpretando l’html.

  • Con il singolo apice
$nome = '$nl Giorgio';

Qui la stringa all’interno dell’apice viene ripetuta uguale a come è scritta e il codice non viene interpretato, qui $nl varrà $nl e non una riga vuota.

Il terzo modo è quello di usare il triplo minore <<< (HERE DOC) cioè inizia il documento

$brano = <<<Citazione
Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene     non interrotte di monti, tutto a seni e a golfi, a seconda dello   sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi, e a prender corso e figura, tra un promontorio a destra...
Citazione

Si usa normalmente quando c’è un testo lungo, si può usare anche con un echo o un print, oltre che con l’assegnazione =. Dopo il carattere <<< si sceglie un nome a nostro piacimento, l’importante è ripeterlo a capo alla fine del ns testo, senza spazi il nome e l’inizio della riga (non bisogna identarlo). All’interno del brano si possono usare variabili che verrebbero interpolate.

Da notare che se scrivo:

$a ="ciao";
$b ="$a a";
$c ="$b tutti";
echo "$c";

Le variabili si concatenano e il risultato dell’echo sarà: cia a tutti.

Ancora:

$volte ="20";
$saluto ="Ciao a tutti per la $voltema volta";

L’interprete php cercherebbe la variabile $voltema che non esiste, quindi per fargli capire dove finisce la variabile bisogna racchiuderla tra parentesi graffe:

$saluto ="Ciao a tutti per la {$volte}ma volta";

Quando voglio inserire dei caratteri speciali tipo il $ le ” gli ‘  come se fossero stringhedevo usare l’escape:

$s ="Manzoni è l'autore de \"I promessi sposi\"";
echo $s

Un altro esempio del back slash è quello per andare a capo \n

Se devo stampare proprio il back slash seguito dalla n come stringa lo devo usare doppio \\:

$s = "la cartella è in C:\\novita";

Se non lo mettessi doppio php vedrebbe \n ovita, altrimenti non serve il doppio:

$s = "la cartella è in C:\windows";

In generale l’escape si usa in tutte le situazioni di ambiguità.

per generare i caratteri mal interpretabili, tipo \n    \”    \$    \[    \{

Oppure per generare dei caratteri speciali, utilizzando il codice ascii, utilizzando \x seguito dal codice. Es: \x7e dove 7e corrisponde alla tilde. In ottale non si mette la x, quindi la tilde diventa \176. In quest’ultimo caso il massimo valore indicabile è 255, quindi alcuni caratteri verrebbero esclusi.

Per far scrivere ‘ciao’ dovremmo utilizzare questa forma ‘\’ciao\”;

L’escape con tutte questi casi si può utilizzare anche nel terzo tipo di stringhe (here doc <<<)  .