Menu

Stringhe PHP: virgolette, concatenazione e interpolazione

Unisci le stringhe PHP con l'operatore punto ("Hello, " . $name) oppure metti le variabili direttamente tra virgolette doppie ("Hello, $name"). Le virgolette singole stampano il testo così com'è. Impara la concatenazione, .=, l'interpolazione di array e oggetti e il cambio di maiuscole con strtoupper, strtolower, ucfirst e ucwords.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

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().

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA