In questo tutorial vediamo nello specifico il tipo di dato “string
“, o stringhe di testo, in PHP.
Le stringhe di testo non sono altro che una successione di caratteri alfabetici, numerici e speciali che compongono una lettera, una parola, una frase o un testo.
Dato che parliamo di sviluppo web, in PHP le stringhe di testo comprendono anche strutture HTML semplici o complesse.
In PHP possiamo definire o realizzare una stringa di testo in quattro modalità:
- singoli apici
- doppi apici
- sintassi heredoc
- sintassi nowdoc
Indice riassuntivo
Stringhe tra singoli e doppi apici
Più avanti vedremo heredoc e nowdoc, quindi focalizziamoci sul metodo standard per definire una stringa di testo in PHP. Inseriamo del testo tra singoli apici e poi tra doppi:
<?php
'Stringa di testo in PHP tra singoli apici';
"Stringa di testo in PHP tra doppi apici";
?>
Però vedrai che visitando la pagina in cui è contenuto questo codice non comparirà nulla.
Questo perché abbiamo sì definito delle stringhe di testo, ma non abbiamo utilizzato nessun comando per ottenere questi dati sulla pagina web.
Quindi utilizziamo il costrutto echo
per visualizzare queste stringhe di testo sulla pagina web:
<?php
echo 'Stringa di testo in PHP tra singoli apici';
echo "Stringa di testo in PHP tra doppi apici";
?>
Nota bene: il costrutto echo
va messo sempre prima il contenuto che voglio visualizzare su una pagina web.
Otteniamo questo risultato:
Come puoi vedere queste stringhe vengono visualizzate sulla pagina web ma sono attaccate tra loro.
Questo perché se abbiamo in successione più elementi in output, con il costrutto echo
, PHP li metterà uno dopo l’altro. Quindi posso lasciare quante righe voglio tra un echo
e un altro, il risultato sarà lo stesso.
Dato che stiamo parlando di pagine HTML che vengono elaborate in PHP, posso elaborare come stringa di testo un tag HTML del tipo “nuova linea” ovvero “<br>” (in inglese break line).
Quindi tra un echo e l’altro inseriamo echo "<br>"
, che sia a singoli o doppi apici non importa:
<?php
echo 'Stringa di testo in PHP tra singoli apici';
echo "<br>";
echo "Stringa di testo in PHP tra doppi apici";
?>
Vediamo nuovamente cosa otteniamo:
Vedrai che le scritte appariranno una sopra l’altra proprio perché il tag “<br>
” manderà a capo la stringa successiva da visualizzare.
Differenza tra stringhe a singoli e doppi apici
Il fatto che in PHP si possano definire stringhe con singoli e doppi apici può confonderti. Ma è possibile chiarire il tutto capendo che:
- le stringhe a singoli apici non accettano al loro interno le variabili
- le stringhe a doppi apici accettano al loro interno le variabili
Partiamo dal secondo caso. Facciamo finta che abbiamo questa variabile $nome
e poi una stringa a doppi apici in output (echo "Il mio nome è";
):
<?php
$nome = "Michele";
echo "Il mio nome è";
?>
Noi vogliamo inserire il contenuto della variabile $nome
nella stringa a doppi apici "Il mio nome è"
per comporre l’ovvia frase.
Con le stringhe a doppi apici possiamo inserire la variabile all’interno dei doppi apici nel seguente modo:
<?php
$nome = "Michele";
echo "Il mio nome è $nome";
?>
Risultato:
Il mio nome è Michele
Quando inseriamo una variabile in una stringa a doppi apici è buona pratica usare le parentesi graffe:
<?php
$nome = "Michele";
echo "Il mio nome è {$nome}";
?>
Il risultato sarà lo stesso. Quindi ricorda questa buona pratica, migliora anche la visibilità delle variabili nelle stringhe.
Però il discorso è diverso per le stringhe a singoli apici, infatti NON possiamo seguire lo stesso esempio. Ma proviamoci lo stesso, quindi al posto dei doppi apici usiamo quelli singoli:
<?php
$nome = "Michele";
echo 'Il mio nome è {$nome}';
?>
Questo sarà il risultato:
Il mio nome è {$nome}
Quindi PHP non va a ripescare il contenuto della variabile. Quindi l’unico metodo è utilizzare la concatenazione utilizzando il punto “.
” in questo modo:
<?php
$nome = "Michele";
echo 'Il mio nome è ' . $nome;
?>
Così il risultato sarà come quello di prima:
Il mio nome è Michele
Inserire delle stringhe di testo nelle variabili e visualizzarle
In PHP è possibile inserire stringhe di testo nelle variabili e quindi in memoria. Ecco alcuni esempi:
<?php
$nome = "Michele";
$cognome = "Mincone";
Subito dopo possiamo utilizzare il costrutto echo
per vederne il contenuto, utilizzo <br>
per andare su una nuova linea:
<?php
$nome = "Michele";
$cognome = "Mincone";
echo $nome;
echo "<br>";
echo $cognome;
?>
Risultato:
Michele
Mincone
All’interno delle variabili posso inserire una o più variabili se ho una stringa a doppi apici:
<?php
// Preparo alcune variabili
$nome = "Michele";
$cognome = "Mincone";
$professione = "sviluppatore web";
// Inserisco le variabili nella stringa a doppi apici
$stringa = "Il mio nome è {$nome} {$cognome}. Nella vita faccio lo {$professione}.";
echo $stringa;
?>
Risultato:
Il mio nome è Michele Mincone. Nella vita faccio lo sviluppatore web.
Oppure utilizzo il metodo della concatenazione per stringhe a singoli apici:
<?php
// Preparo alcune variabili
$nome = "Michele";
$cognome = "Mincone";
$professione = "sviluppatore web";
// Concateno le variabili con la stringa a singoli apici
$stringa = 'Il mio nome è ' . $nome . ' ' . $cognome . '. Nella vita faccio lo ' . $professione . '.';
echo $stringa;
?>
Questo metodo può dare un po’ di confusione all’inizio, ma otteniamo lo stesso risultato:
Il mio nome è Michele Mincone. Nella vita faccio lo sviluppatore web.
Concatenare le stringhe
In PHP posso concatenare più stringhe contenute nelle variabili con il punto “.”:
<?php
$introduzione = "Il mio nome è ";
$nome = " Michele ";
$cognome = " Mincone ";
$fine = ".";
echo $introduzione . $nome . $cognome . $fine;
Risultato:
Il mio nome è Michele Mincone.
Accedere ai caratteri di una stringa
Quando definiamo una stringa, in qualsiasi modo, in una variabile possiamo accedere ai suoi singoli caratteri.
Per fare ciò possiamo usare le parentesi quadre con un numero all’interno affianco alla variabile.
Il numero tra le parentesi quadre servirà a selezionare il carattere desiderato nella stringa. Il conteggio dei caratteri parte dal numero 0 (e non da 1) per selezionare il primo carattere. Ecco un esempio:
<?php
// Definisco una variabile con stringa
$nome = "Michele";
// Seleziono il primo carattere
echo $nome[0];
?>
Risultato:
M
Se volevo selezionare il secondo carattere utilizzavo il numero 1 tra parentesi quadre, per il terzo carattere il numero 2, per il quarto il numero 3 e così via:
<?php
// Definisco una variabile con stringa
$nome = "Michele";
// Seleziono il secondo, terzo, quarto e quinto carattere, utilizzo dei tag <br> per andare a capo
echo $nome[1];
echo "<br>";
echo $nome[2];
echo "<br>";
echo $nome[3];
echo "<br>";
echo $nome[4];
?>
Risultato:
i
c
h
e
Quindi è fondamentale capire che per accedere ai singoli caratteri di una stringa si parte da una variabile e che il conteggio dei caratteri parte da 0 (primo carattere) e non da 1.
La funzione is_string()
Possiamo riconoscere se una variabile contiene una stringa con la funzione is_string()
. Passando una variabile se questa è una stringa la funzione ritorna true
se non lo è ritorna false
:
<?php
$stringa = "Sono Michele";
$numero = 48;
var_dump( is_string($stringa) );
echo "<br>";
var_dump( is_string($numero) );
?>
Con var_dump()
possiamo apprezzare il risultato della funzione is_string()
:
bool(true)
bool(false)
Per cui, questa funzione è molto utile quando utilizzo i blocchi condizionali if-else
:
<?php
$var = "Il mio nome è Michele";
if ( is_string( $var ) ) {
echo "È una stringa";
} else {
echo "Non è una stringa";
}
?>
Risultato:
È una stringa
Ottenere la lunghezza di una stringa
In PHP esistono molte funzioni precostruite per lavorare con le stringhe o manipolarle.
Un esempio è la funzione strlen()
usata per calcolare la lunghezza dei caratteri di una stringa.
Definiamo una stringa in una variabile e la passiamo nella funzione strlen()
, prima di ciò usiamo il costrutto echo per ottenere la lunghezza dei caratteri in formato numerico:
<?php
// Definiamo alcune stringhe nelle seguenti variabili
$stringa1 = "Michele";
$stringa2 = "Il mio nome è Michele";
$stringa3 = "Faccio lo sviluppatore web di lavoro";
$stringa4 = "Ho 21 anni";
// Poi mostriamo su schermo la lunghezza di queste stringhe e andiamo a capo con <br>
echo strlen( $stringa1 );
echo "<br>";
echo strlen( $stringa2 );
echo "<br>";
echo strlen( $stringa3 );
echo "<br>";
echo strlen( $stringa4 );
?>
Come risultato otteniamo il numero dei caratteri di ogni stringa:
7
22
36
10
Funzioni per lavorare con le stringhe
Oltre alla funzione strlen()
che abbiamo visto prima, in PHP ci sono molte altre funzioni per manipolare e lavorare con le stringhe. Ecco altri esempi:
explode()
per trasformare una stringa in un arraytrim()
usata per rimuovere gli spazi a sinistra e a destra (inizio e fine) di una stringaltrim()
rimuove lo spazio vuoti all’inizio di una stringa (sinistra)rtrim()
rimuove lo spazio vuoti alla fine di una stringa (destra)str_replace()
per rimpiazzare parole in una stringa tenendo conto di maiuscole o minuscolestr_ireplace()
per rimpiazzare parole in una stringa non tenendo conto di maiuscole o minuscolepreg_replace()
per rimpiazzare parole o elementi in una stringa tramite espressioni REGEX (espressioni regolari o regular expressions)md5()
per calcolare l’hash md5 di una stringastrtolower()
trasforma una stringa in caratteri tutti minuscolistrtoupper()
trasforma una stringa in caratteri tutti maiuscolisubstr()
per ottenere una porzione di una stringa
Queste sono soltanto alcune delle funzioni per questo scopo. Vedremo queste e altre in articoli dedicati per esplorare il loro meccanismo nello specifico.
Altrimenti vedile tutte sulla documentazione di PHP in funzioni per le stringhe.