Enkelt sitater og dobbelt sitater blir håndtert litt annerledes i PHP. Les videre for å se forskjellene i hvordan de blir evaluert.
Enkelt sitater
Enkelt sitater har en tendens til å analysere ting i en mye mer bokstavelig forstand. Ta for eksempel følgende:
$ test = "BOOOM"; ekko '$ test'
Variablenavnet, når de blir satt inn i de enkelte sitatene, blir ikke analysert til den faktiske verdien. Her er hva som faktisk skrives ut fra å kjøre dette som et enkelt php-program:
$ test
Det er bare to scenarier som jeg kan tenke på der informasjon faktisk blir analysert i en enkelt sitert streng. For det første, for å vise et enkelt sitert tegn, må det gå foran en tilbakeslag. Ellers blir det tolket som slutten på strengen din. For det andre, for å vise et tilbakeslag, må det gå foran en annen tilbakefall. Eksempel:
ekko 'enkelt sitat: \' '; ekko 'backslash: \\';
Doble sitater
Doble sitater pleier å analysere ting for deg. Når du kjører mellom doble anførselstegn:
$ test = "BOOOM"; ekko "$ test"
Den gir ut den faktiske variabelverdien:
BOOOM
Noen ganger vil du innimellom støte på et scenario der variabelenavnet du prøver å produsere, blir forårsaket å ikke parses riktig på grunn av noen omliggende tegn.
$ test = "BOOOM"; ekko "$ testet";
Hva tror du får utdata her? Svaret er ingenting. PHP ser etter en variabel som heter $ testet, og siden den ikke eksisterer, blir ingenting utgitt. Den riktige måten å sende ut verdien etterfulgt av 'ed' ville være:
$ test = "BOOOM"; ekko "{$ test} ed";
Ved å pakke den inn i de krøllete parentesene, lar den PHP vite hvor variabelen starter og stopper, slik at den kan vurdere variabelen riktig.
Hastighetsforskjell
Jeg kjørte noen enkle benchmarking-tester for å evaluere noen forskjellscenarier, forskjellen i hastighet mellom de to er ubetydelig. Enkelte anførselstegn var litt raskere på grunn av det faktum at det ikke trenger å se etter en variabel og deretter analysere verdien, men jeg har aldri støtt på et scenario der det gjorde nok av en forskjell for saken. Bruk det som passer dine nåværende behov.