Enkle sitater og dobbelte anførselstegn håndteres litt annerledes i PHP. Les videre for å se forskjellene i hvordan de vurderes.
Enkelt sitater
Enkle sitater har en tendens til å analysere ting i en mye mer bokstavelig forstand. Ta for eksempel følgende:
$ test = "BOOOM"; ekko '$ test'
Det variable navnet, når det legges inn i enkeltnotene, blir ikke analysert til den faktiske verdien. Her er det som faktisk skrives ut fra å kjøre dette som et enkelt php-program:
$ test
Det er bare 2 scenarier som jeg kan tenke på der informasjonen faktisk blir analysert i en enkelt sitert streng. Først, for å vise et enkelt sitert tegn, må det føres av en tilbakeslag. Ellers tolkes det som enden av strengen din. For det andre, for å vise en tilbakemelding, må den gå foran med en annen tilbakeslag. Eksempel:
ekko 'enkelt sitat: \' '; ekko 'backslash: \\';
Double Quotes
Doble sitater har en tendens til å analysere ting for deg. Når du kjører mellom dobbelte anførselstegn:
$ test = "BOOOM"; ekko "$ test"
Den utsender den faktiske variable verdien:
BOOOM
Nå vil du av og til komme inn i et scenario der variabelenavnet du prøver å utføre, ikke skyldes å bli analysert på grunn av noen omkringliggende tegn.
$ test = "BOOOM"; ekko "$ testet";
Hva tror du får utdata her? Svaret er ingenting. PHP ser etter en variabel kalt $ testet, og siden den ikke eksisterer, blir ingenting utgitt. Den riktige måten å utføre verdien etterfulgt av 'ed' ville være:
$ test = "BOOOM"; ekko "{$ test} ed";
Ved å pakke det inn i de krøllete parentesene, lar det PHP vite hvor variabelen starter og stopper, slik at den kan evaluere variabelen ordentlig.
Hastighetsforskjell
Jeg løp noen enkle benchmarking tester for å evaluere noen forskjell scenarier, forskjellen i fart mellom de 2 er ubetydelig. Enkle sitater var hver så litt raskere på grunn av at det ikke trenger å se etter en variabel og deretter analysere verdien, men jeg har aldri møtt et scenario der det gjorde nok av en forskjell til sak. Bruk det som passer dine nåværende behov.