Yksittäisiä ja kaksinkertaisia lainauksia käsitellään PHP: ssä hieman eri tavalla. Lue edelleen nähdäksesi erot niiden arvioinnissa.
Yksittäiset sitaatit
Yksittäisillä lainauksilla on taipumus jäsentää asiat paljon kirjaimellisemmassa merkityksessä. Otetaan esimerkiksi seuraava:
$ test = "BOOOM"; kaiku '$ test'
Yksittäisiin lainausmerkkeihin sijoitettuna muuttujan nimeä ei jäsentätä sen todelliseen arvoon. Tässä on mitä todella tulostetaan suorittamalla tämä yksinkertaisena php-ohjelmana:
$ testi
On vain 2 skenaariota, joita voin ajatella siitä, missä tiedot todella jäsennetään yhdessä lainatussa merkkijonossa. Ensinnäkin yhden lainaaman merkin näyttämiseksi sitä täytyy edeltää alaviiva. Muutoin se tulkitaan merkkijonon loppuun. Toiseksi, jotta pystysuuntainen viiva voidaan näyttää, sitä täytyy edeltää toinen takaviiva. Esimerkki:
echo 'yksittäinen tarjous: \' '; echo 'alaviiva: \\';
Tuplalainaukset
Tuplalainaukset yleensä jäsentävät asiat puolestasi. Kun käydään lainausmerkkien välillä:
$ test = "BOOOM"; kaiku "$ testi"
Se antaa todellisen muuttujan arvon:
booom
Nyt satunnaisesti joudut tilanteeseen, jossa muutettavan nimen, jota yrität tuottaa, ei ole jäsentätty oikein joidenkin ympäröivien merkkien takia.
$ test = "BOOOM"; kaiku "$ testattu";
Mitä luulet saavan täältä? Vastaus ei ole mitään. PHP etsii muuttujaa nimeltä $ testattu, ja koska sitä ei ole, mitään ei tulosteta. Oikea tapa tulostaa arvo, jota seuraa 'ed', olisi:
$ test = "BOOOM"; kaiku "{$ test} ed";
Käärimällä se kiharaan suluissa, se antaa PHP: lle tietää missä muuttuja alkaa ja pysähtyy, jolloin se pystyy arvioimaan muuttujaa oikein.
Nopeusero
Suoritin muutaman yksinkertaisen benchmarking-testin joidenkin eroavaisuuksien arvioimiseksi, nopeusero kahden välillä on merkityksetön. Yksittäiset lainaukset olivat jokainen niin nopeampi johtuen siitä, että sen ei tarvitse etsiä muuttujaa ja sitten jäsentää arvoa, mutta en ole koskaan tavannut tilannetta, jossa se tekisi tarpeeksi eron asiaan. Käytä sen mukaan, mikä sopii nykyisiin tarpeisiisi.
