Qual è la differenza tra le stringhe con apice singolo e doppio in PHP

Apice singolo

Le stringhe tra apici singoli visualizzeranno le cose quasi completamente “così come sono”. Le variabili e la maggior parte delle sequenze di escape non verranno interpretate. L’eccezione è che per visualizzare un apice singolo letterale, è possibile eseguire l’escape con una barra rovesciata \’, e per visualizzare una barra rovesciata, è possibile eseguire l’escape con un’altra barra rovesciata \\ (quindi sì, anche le stringhe tra apici singoli vengono analizzate).

Apice doppio

Le stringhe con apici doppi visualizzeranno una serie di caratteri di escape (incluse alcune espressioni regolari) e verranno valorizzate le variabili presenti all’interno. Un punto importante qui è che puoi usare le parentesi graffe per isolare il nome della variabile che vuoi valorizzare. Ad esempio, supponiamo che tu abbia la variabile $type e vuoi usare echo “The $types are”. Questo cercherà la variabile $types. Per aggirare questo problema usa echo “The {$type}s are” Puoi mettere la parentesi graffa sinistra prima o dopo il simbolo del dollaro.

N.B: Sugli apici singoli all’interno di apici singoli e gli apici doppi all’interno di apici doppi va fatto l’escape

$string = 'He said "What\\'s up?"';
$string = "He said \\"What's up?\\"";

Esistono altri due modi per dichiare delle stringhe in PHP:

Heredoc

La sintassi delle stringhe Heredoc funziona come le stringhe tra apici doppi. Inizia con <<<. Dopo questo operatore, viene fornito un identificatore, quindi una nuova riga. Segue la stringa stessa, quindi lo stesso identificatore di nuovo per chiudere la citazione. Non è necessario fare l’escape degli apici in questa sintassi.

Nowdoc

La sintassi delle stringhe Nowdoc (a partire da PHP 5.3.0) funziona essenzialmente come le stringhe tra apici singoli. La differenza è che non è necessario fare l’escape nemmeno degli apici o dellle barre inverse. Una stringa Nowdoc viene identificata con la stessa sequenza <<< usata per Heredoc, ma l’identificatore che segue è racchiuso tra apici singoli, ad es. <<<‘EOT’. Non viene eseguita alcuna analisi in Nowdoc.

Lascia un commento