W3docs

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):

SequenzaSignificato
\nRitorno a capo
\tTabulazione
\\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|
?>
FunzioneCosa 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.

Esercitazione

Pratica
In PHP, quale delle seguenti funzioni può essere usata per restituire una stringa formattata?
In PHP, quale delle seguenti funzioni può essere usata per restituire una stringa formattata?
Was this page helpful?