Skillnad mellan enstaka citat och dubbla citat i php

Enkla citat och dubbla citat hanteras lite annorlunda i PHP. Läs vidare för att se skillnaderna i hur de utvärderas.

Enkla citat

Singel citat tenderar att analysera saker i en mycket mer bokstavlig mening. Ta till exempel följande:

 $ test = "BOOOM"; eko "$ test" 

Det variabla namnet, när det anges i de enskilda citaten, analyseras inte till dess faktiska värde. Här är vad som faktiskt skrivs ut från att köra detta som ett enkelt php-program:

 $ testet 

Det finns bara 2 scenarier som jag kan tänka på var informationen faktiskt analyseras inom en enda citerad sträng. För att visa en enda citerad karaktär måste den föregås av en backslash. Annars kommer det att tolkas som slutet på din sträng. För det andra, för att visa en backslash, måste den föregås av en annan backlack. Exempel:

 echo 'single quote: \' '; echo 'backslash: \\'; 

Dubbla citat

Dubbel citat tenderar att analysera saker för dig. När köra mellan dubbla citat:

 $ test = "BOOOM"; eko "$ test" 

Den matar ut det faktiska variabla värdet:

 booom 

Nu kommer du ibland att gå in i ett scenario där det variabla namn du försöker skriva ut orsakas inte analyseras korrekt på grund av några omgivande tecken.

 $ test = "BOOOM"; eko "$ testat"; 

Vad tror du får produktionen här? Svaret är ingenting. PHP letar efter en variabel som heter $ testad, och eftersom den inte existerar, matas ingenting ut. Det korrekta sättet att mata ut värdet följt av "ed" skulle vara:

 $ test = "BOOOM"; eko "{$ test} ed"; 

Genom att linda in den i de krökta parentesen låter det PHP veta var variabeln startar och stannar, så att den kan korrekt utvärdera variabeln.

Hastighetsskillnad

Jag sprang några enkla benchmarking tester för att utvärdera vissa skillnadsscenarier, skillnaden i hastighet mellan 2 är försumbar. Enkla citat var så lite snabbare på grund av att det inte behöver leta efter en variabel och sedan analysera värdet, men jag har aldrig stött på ett scenario där det gjorde tillräckligt med skillnad i fråga. Använd det som passar dina nuvarande behov.

Se Även