Qual è la differenza tra single quote e double quote in PHP? In questo articolo farò chiarezza nell’utilizzo fra queste due varianti.
Nell’utilizzo di PHP c’è senza alcun dubbio l’uso delle stringhe: del resto non se ne può fare troppo a meno, siamo umani in fondo.
Il punto è che come in differenti linguaggi di programmazione, le stringhe vanno incapsulate e di solito lo si fa con apici singoli, in inglese i “single quote”, oppure tramite apici doppi, ovvero i “double quote”. Se sei qua è perchè ti stai chiedendo quale sia la differenza tra single quote e double quote in PHP, ma prima le presentaizoni.
Se non mi conosci io mi chiamo Lorenzo Neri e sono un informatico: il mio blog contiene tanti articoli su PHP come questo, di fatto c’è una categoria intera da esplorare, ognuno di essi è frutto di un problema che ho cercato di risolvere nel corso della mia carriera lavorativa.
Quale miglior modo se non creare articoli come questo per aiutare persone com te? Iniziamo.
Speed single quote vs double quote in PHP: a dire il vero è uguale
Prima di parlare di differenze fra single quote e double quote in PHP, vorrei dare un’introduzione differente, perché magari se stai cercando la performance… Sappi che è la stessa.
Se ti stai chiedendo quale incapsulamento di stringhe in PHP è più rapido in PHP fra i single quote e i double quote… Parrebbe non esserci una differenza sostanziale.
Puoi fare tu stesso un test sfruttando il sito web phpbench.com che ti permette di fare dei benchmark a riguardo e se volessi approfondire c’è anche questo articolo in merito.
Chiarito questo punto, passiamo al cuore dell’articolo vero e proprio.
La differenza tra single quote e double quote in PHP: in realtà sono quattro
Se dovessi spiegarti realmente la differenza fra single quote e double quote in PHP beh… Ci sono ben quattro punti a corredo.
Il primo è che le stringhe incapsulate con i doppi apici, quindi in double quote, mostrerà anche i caratteri “escapati” (ritorni a capo, interruzioni, eccetera) nonchè variabili di PHP che verranno valutate come tali al loro interno.
Per fare un esempio, immagina di avere la variabile $pippo dentro la stringa “Ciao io mi chiamo $pippo” e il suo contenuto è “Paperino”: ciò che verrà stampato a video sarà la stringa “Ciao io mi chiamo Paperino”.
E invece se si tratta di una stringa incapsulata con gli apici singoli dunque con i single quote… Le cose cambiano.
Cambia il fatto che la stringa viene valutata così come è dall’interprete di PHP.
Vale a dire che per esempio la stringa di prima a video, mostrerebbe come output “Ciao io mi chiamo $pippo”: fine della storia. L’unica eccezione è che si può fare l’escaping dei single quote stessi con il backslash in modo tale da farne il parsing, per intenderci con ‘\.
Le ultime due differenze invece riguardanti il single quote e il double quote in PHP sono relative ad Heredoc e Nowdoc.
Nel caso delle stringhe gestite con modalità “Heredoc” hanno lo stesso funzionamento delle stringhe gestite con il double quote. Dopo aver definito l’operatore di partenza “<<<“ comincia la nuova riga a seguito dell’operatore e la stringa tessa termina non appena viene inserito l’operatore stesso.
Per ciò che concerne le stringhe gestite con modalità “Nowdoc” ironia della sorte seguono di pari passo ciò che avviene per le stringhe gestite con il single quote. Ciò significa che sia le singole sia le doppie virgolette, quindi sia double sia single quote all’interno della stringa, vengono considerate come tali.