Una stringa PHP è testo tra virgolette singole o doppie. Unisci le stringhe con l'operatore punto, $first . ' ' . $last, oppure metti una variabile direttamente tra virgolette doppie: "Hello, $name".
Il punto unisce due valori qualsiasi in una nuova stringa. I numeri vengono convertiti per te, quindi "Total: " . 42 è "Total: 42".
Virgolette singole e doppie
Le virgolette doppie fanno due cose in più: sostituiscono le variabili con i loro valori, e trasformano sequenze di escape come \n (a capo) e \t (tabulazione) nei caratteri che rappresentano. Le virgolette singole stampano il testo esattamente com'è scritto, tranne \' e \\.
Usa le virgolette singole per il testo fisso e le doppie quando vuoi dentro una variabile o un \n. La differenza di velocità tra le due è troppo piccola per essere misurata, quindi scegli quella che rende la riga più leggibile.
Concatenare stringhe con . e .=
.= aggiunge in fondo a una variabile stringa. È il modo abituale per costruire testo in un ciclo, per esempio un pezzo di HTML. Esegui questo blocco e l'editor apre la scheda Page, che mostra la lista visualizzata.
La precedenza conta quando mescoli . con l'aritmetica. Da PHP 8, + e - legano più di ., quindi "Sum: " . 2 + 3 è "Sum: 5". Le parentesi lo rendono evidente a chi leggerà dopo: "Sum: " . (2 + 3).
Mettere variabili, array e oggetti dentro una stringa
Una variabile semplice funziona da sola tra virgolette doppie. Per un elemento di array, una catena di proprietà di un oggetto o una chiamata di metodo, racchiudi l'espressione tra parentesi graffe. Le graffe separano anche una variabile dalle lettere che la seguono.
I metodi funzionano dentro le graffe, le funzioni semplici no: l'ultima riga stampa le graffe e il nome della funzione attorno al valore di $fruit. Chiama la funzione prima della stringa, oppure usa sprintf quando la stringa contiene molti valori.
Cambiare maiuscole e minuscole: strtoupper, strtolower, ucfirst, ucwords
Queste funzioni lavorano byte per byte e cambiano solo le lettere dalla a alla z. Per testo con accenti, in cirillico o in greco, usa le versioni multibyte, che capiscono l'UTF-8:
Leggere singoli caratteri e ripetere stringhe
Una stringa si può indicizzare come un array. Gli offset negativi contano dalla fine. Per contare i caratteri vedi strlen.
Errore comune: + al posto di .
In JavaScript + unisce le stringhe. In PHP + è sempre aritmetica: le stringhe numeriche vengono sommate come numeri, e il testo che non è un numero lancia un errore.
Se vedi un numero dove ti aspettavi testo unito, oppure Unsupported operand types: string + string, cerca un + che dovrebbe essere un ..
Domande frequenti
Come si concatenano le stringhe in PHP?
Usa l'operatore punto: $full = $first . ' ' . $last;. Per aggiungere in fondo a una stringa esistente, usa .=: $html .= '<li>Item</li>';. L'operatore + è per i numeri, e "Hello" + "World" lancia un TypeError in PHP 8.
Qual è la differenza tra virgolette singole e doppie in PHP?
Le virgolette doppie sostituiscono variabili e sequenze di escape: "Hi $name\n" stampa il valore di $name e un a capo. Le virgolette singole stampano quasi tutto così com'è: 'Hi $name\n' stampa il simbolo del dollaro, il nome e una barra rovesciata seguita da n. Dentro le virgolette singole gli unici escape sono \' e \\.
Come inserisco il valore di un array dentro una stringa PHP?
Racchiudilo tra parentesi graffe: "Hello, {$user['name']}". Lo stesso vale per le proprietà degli oggetti e le chiamate di metodo: "{$user->getName()}". Senza graffe, "$user[name]" (senza virgolette attorno alla chiave) funziona anche per una chiave semplice.
Come rendo una stringa maiuscola o minuscola in PHP?
strtoupper('php') restituisce PHP, strtolower('PHP') restituisce php, ucfirst('hello') rende maiuscola la prima lettera e ucwords('hello world') la prima lettera di ogni parola. Per testo con accenti o lettere non latine usa mb_strtoupper() e mb_strtolower().