Enkelt citater og dobbelt citater håndteres lidt anderledes i PHP. Læs videre for at se forskellene i, hvordan de vurderes.
Enkeltlige Citater
Enkelt citater har tendens til at analysere ting i en meget mere bogstavelig forstand. F.eks. Tag følgende:
$ test = "BOOOM"; ekko '$ test'
Det variable navn, når det ligger inden for de enkelte citater, analyseres ikke til dets faktiske værdi. Her er hvad der faktisk er skrevet ud fra at køre dette som et simpelt php-program:
$ test
Der er kun 2 scenarier, som jeg kan tænke på, hvor oplysninger faktisk bliver analyseret inden for en enkelt citeret streng. For at vise et enkelt citeret tegn skal det forinden være en tilbageslag. Ellers vil det blive fortolket som slutningen af din streng. For det andet, for at vise en tilbageslag, skal den foregå af en anden backslack. Eksempel:
ekko 'enkelt citat: \' '; ekko 'backslash: \\';
Dobbelt Citater
Dobbelt citater har tendens til at analysere tingene ud for dig. Når kører mellem dobbelt citater:
$ test = "BOOOM"; ekko "$ test"
Den udsender den faktiske variable værdi:
BOOOM
Nu lejlighedsvis vil du løbe ind i et scenario, hvor det variable navn, du forsøger at output, skyldes, at det ikke analyseres korrekt på grund af nogle omkringliggende tegn.
$ test = "BOOOM"; ekko "$ testet";
Hvad tror du får output her? Svaret er intet. PHP søger en variabel, der hedder $ testet, og da den ikke eksisterer, er der intet output. Den rigtige måde at udføre værdien efterfulgt af 'ed' ville være:
$ test = "BOOOM"; ekko "{$ test} ed";
Ved at indpakke det inden for de krøllede parenteser, lader det PHP vide, hvor variablen starter og stopper, så den kan evaluere variablen ordentligt.
Hastighedsforskel
Jeg løb et par enkle benchmarking tests for at evaluere nogle forskelle scenarier, forskellen i hastighed mellem de 2 er ubetydelig. Enkelt citater var så lidt hurtigere, fordi det ikke behøver at lede efter en variabel og derefter analysere værdien, men jeg har aldrig stødt på et scenario, hvor det gjorde nok af en forskel til at gøre noget. Brug det, der passer til dine nuværende behov.