PHP String
Scopri come funzionano le stringhe in PHP - creazione, virgolette singole e doppie, heredoc/nowdoc, sequenze di escape, concatenazione e le funzioni più usate.
Una stringa in PHP è una sequenza di caratteri - testo come un nome, una frase o un intero documento HTML. Le stringhe sono uno dei tipi di dati più utilizzati in PHP, e il linguaggio include una vasta libreria di funzioni per cercarle, sostituirle, formattarle e trasformarle.
Questa pagina spiega come creare stringhe, la differenza tra virgolette singole e doppie, le sequenze di escape, come unire le stringhe e le funzioni sulle stringhe più comunemente usate.
Creare una stringa
Puoi scrivere una stringa letterale usando virgolette singole (') o doppie ("):
<?php
$greeting = 'Hello';
$name = "World";
echo $greeting; // Hello
?>Per testi più lunghi o complessi, PHP offre anche la sintassi heredoc e nowdoc, descritte di seguito.
Virgolette singole e doppie
Questa è la distinzione più importante da imparare fin dall'inizio. Le stringhe con virgolette doppie interpretano le variabili e le sequenze di escape; quelle con virgolette singole no.
<?php
$name = "Alice";
echo "Hello, $name\n"; // Hello, Alice (then a newline)
echo 'Hello, $name\n'; // Hello, $name\n (printed literally)
?>Nella versione con virgolette doppie, $name viene sostituito dal suo valore e \n diventa un vero ritorno a capo. Nella versione con virgolette singole, entrambi vengono stampati esattamente come digitati.
Le virgolette singole sono leggermente più veloci e sicure quando non si vuole l'interpolazione, quindi usale per i letterali semplici e passa alle virgolette doppie solo quando hai bisogno di una variabile o di una sequenza di escape all'interno della stringa.
Interpolazione con le parentesi graffe
Quando una variabile è seguita da caratteri che potrebbero far parte del suo nome, racchiudila in {} in modo che PHP sappia dove termina il nome:
<?php
$fruit = "apple";
echo "I ate two {$fruit}s\n"; // I ate two apples
?>Sequenze di escape
Le sequenze di escape hanno significato solo all'interno delle stringhe con virgolette doppie (e heredoc):
| Sequenza | Significato |
|---|---|
\n | Ritorno a capo |
\t | Tabulazione |
\\ | Barra rovesciata |
\" | Virgolette doppie |
\$ | Segno dollaro (impedisce l'interpolazione) |
<?php
echo "Line one\nLine two\n";
echo "Price: \$10\n"; // Price: $10
?>Heredoc e nowdoc
Per il testo su più righe, heredoc si comporta come una stringa con virgolette doppie (le variabili vengono interpretate) e nowdoc si comporta come una stringa con virgolette singole (nulla viene interpretato).
<?php
$name = "Sam";
// Heredoc - interpolates $name
echo <<<EOT
Dear $name,
Welcome aboard!
EOT;
echo "\n---\n";
// Nowdoc - prints $name literally
echo <<<'EOT'
Dear $name,
This is shown verbatim.
EOT;
?>L'identificatore di chiusura (EOT in questo caso) deve iniziare all'inizio di una riga.
Concatenazione
Unisci le stringhe con l'operatore punto (.). L'operatore .= aggiunge in coda a una stringa esistente:
<?php
$first = "John";
$last = "Doe";
$full = $first . " " . $last;
echo $full . "\n"; // John Doe
$message = "Hello";
$message .= ", world!";
echo $message . "\n"; // Hello, world!
?>Consulta Operatori PHP per l'elenco completo degli operatori su stringhe e aritmetici.
Funzioni sulle stringhe più comuni
La libreria standard di PHP include decine di funzioni per le stringhe. Queste sono quelle che userai più spesso:
<?php
$text = "Hello, World";
echo strlen($text) . "\n"; // 12 - length in bytes
echo strtoupper($text) . "\n"; // HELLO, WORLD
echo strtolower($text) . "\n"; // hello, world
echo str_replace("World", "PHP", $text) . "\n"; // Hello, PHP
echo strpos($text, "World") . "\n"; // 7 - index of first match
echo substr($text, 0, 5) . "\n"; // Hello
echo trim(" padded ") . "|\n"; // padded|
?>| Funzione | Cosa fa |
|---|---|
strlen() | Restituisce la lunghezza della stringa |
strtoupper() / strtolower() | Cambia la capitalizzazione |
str_replace() | Sostituisce tutte le occorrenze di una sottostringa |
strpos() | Trova la posizione di una sottostringa (restituisce false se assente) |
substr() | Estrae una parte di una stringa |
trim() | Rimuove gli spazi bianchi da entrambe le estremità |
explode() | Divide una stringa in un array |
implode() | Unisce un array in una stringa |
Formattazione con sprintf()
Quando hai bisogno di un controllo preciso su come i valori vengono inseriti in una stringa - spaziatura, formattazione numerica, allineamento - usa sprintf(). Restituisce una stringa formattata (e printf() la stampa direttamente):
<?php
$name = "Alice";
$score = 92.5;
$line = sprintf("%s scored %.1f%%", $name, $score);
echo $line . "\n"; // Alice scored 92.5%
?>Il segnaposto %s inserisce una stringa, %d un intero e %.1f un numero in virgola mobile arrotondato a una cifra decimale.
Accedere ai singoli caratteri
Una stringa può essere indicizzata come un array, a partire da 0:
<?php
$word = "PHP";
echo $word[0] . "\n"; // P
echo $word[2] . "\n"; // P
?>Dove andare dopo
- Stringhe PHP - un tutorial più approfondito sul lavoro con il testo in PHP.
- Tipi di dati PHP - come le stringhe si affiancano a interi, float, array e altro.
- Funzioni PHP - scrivi le tue funzioni riutilizzabili.