Anonim

Enkeltcitater og dobbeltcitater håndteres lidt anderledes i PHP. Læs videre for at se forskellene i, hvordan de evalueres.

Enkeltcitater

Enkelt citater har en tendens til at analysere ting i en langt mere bogstavelig forstand. Tag f.eks. Følgende:

$ test = "BOOOM"; ekko '$ test'

Variabelnavnet, når det sættes i de enkelte citater, parses ikke til dets faktiske værdi. Her er hvad der faktisk udskrives fra at køre dette som et simpelt php-program:

$ test

Der er kun 2 scenarier, som jeg kan tænke på, hvor information faktisk bliver analyseret inden for en enkelt citeret streng. For det første, for at få vist et enkelt citeret tegn, skal det indledes med en tilbagegang. Ellers vil det blive fortolket som slutningen af ​​din streng. For det andet, for at få vist et tilbageslag, skal det være forud for en anden tilbageslag. Eksempel:

ekko 'enkelt citat: \' '; ekko 'backslash: \\';

Dobbelt citater

Dobbelt citater har en tendens til at analysere tingene for dig. Når du kører mellem dobbeltcitater:

$ test = "BOOOM"; ekko "$ test"

Den udsender den aktuelle variabelværdi:

BOOOM

Lejlighedsvis vil du løbe ind i et scenarie, hvor variablenavnet, du forsøger at udskrive, forårsages ikke at blive parset korrekt på grund af nogle omkringliggende tegn.

$ test = "BOOOM"; ekko "$ testet";

Hvad tror du får output her? Svaret er intet. PHP ser efter en variabel, der hedder $ testet, og da den ikke findes, udsendes der intet. Den rette måde at output værdien efterfulgt af 'ed' på ville være:

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

Ved at indpakke det inden i de krøllede parenteser, lader det PHP vide, hvor variablen starter og stopper, hvilket tillader det at bedømme variablen korrekt.

Hastighedsforskel

Jeg kørte et par enkle benchmarking-tests for at evaluere nogle forskellesscenarier, forskellen i hastighed mellem de 2 er ubetydelig. Enkelte citater var så lidt hurtigere på grund af det faktum, at det ikke behøver at kigge efter en variabel og derefter analysere værdien, men jeg har aldrig stødt på et scenarie, hvor det gjorde nok af en forskel til at betyder noget. Brug det, der passer til dine aktuelle behov.

Forskel mellem enkelt citat og dobbelt citat i php