Anonim

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

Enstaka citat

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

$ test = "BOOOM"; echo '$ test'

Variabelns namn, när den läggs in i de enskilda citaten, tolkas inte till dess verkliga 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 två scenarier som jag kan tänka på där information faktiskt analyseras i en enda citerad sträng. Först, för att visa ett enda citerat tecken, måste det föregås av ett backslash. Annars tolkas det som slutet på din sträng. För det andra måste det föregås av en annan backslack för att visa ett motstreck. Exempel:

echo 'enda offert: \' '; echo 'backslash: \\';

Dubbla citat

Dubbla citat tenderar att analysera saker och ting för dig. När du kör mellan dubbla citat:

$ test = "BOOOM"; echo "$ test"

Den matar ut det faktiska variabla värdet:

booom

Ibland kommer du ibland att stöta på ett scenario där variabelnamnet du försöker mata ut orsakas att inte tolkas korrekt på grund av vissa omgivande tecken.

$ test = "BOOOM"; echo "$ testad";

Vad tror du får produktion här? Svaret är ingenting. PHP letar efter en variabel med namnet $ testad, och eftersom den inte finns, matas ingenting ut. Det rätta sättet att mata ut värdet följt av 'ed' skulle vara:

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

Genom att lägga in den inom de lockiga parenteserna låter PHP veta var variabeln startar och stoppar, vilket gör att den kan utvärdera variabeln korrekt.

Hastighetsskillnad

Jag körde några enkla benchmarkingtest för att utvärdera vissa skillnadsscenarier, skillnaden i hastighet mellan de två är försumbar. Enstaka citat var allt så snabbare på grund av det faktum 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 stor skillnad att spela. Använd det som passar dina nuvarande behov.

Skillnad mellan enda offert och dubbelcitationstecken i php