WordPress Coding Standards Enkeltkvoter og Dobbelkvoter

I denne serien tar vi en titt på WordPress PHP-kodingsstandardene for å forstå hvordan kvaliteten på WordPress-koden skal skrives.

Visst, alt dette er dokumentert i WordPress Coding Standards, og det er et nettsted som hver WordPress-utvikler burde ha bokmerket og tilgjengelig når de jobber med et tema, et plugin eller et program; Men hvis du bare kommer inn i WordPress-utvikling, er det viktig å forstå begrunnelsen til Hvorfor Konvensjonene er slik de er.

I denne artikkelen skal vi ta en titt på bruken av enkle anførselstegn og dobbelte anførselstegn spesielt når det gjelder strenge.

Dette kan være den korteste, mest enkle artikkelen i serien, men den bør dekke noen viktige nyanser som det gjelder å jobbe med enkle anførselstegn, dobbelt anførselstegn og strenger i WordPress.


Strings i PHP og Strings i WordPress

Før vi faktisk diskuterer strenger som de forholder seg til WordPress, er det viktig å forstå hvordan PHP-språket tolker strenger når de er enkeltnotert eller dobbeltkalt.

Enkeltkurser i PHP

For det første er den enkleste og enkleste måten å definere en streng i PHP, bare å pakke den inn med enkelt anførselstegn (det vil si "tegnet).

Som med de fleste programmeringsspråk, der er måter å unnslippe tegn på slik at du kan skrive ut en streng bokstavelig. For eksempel, hvis du ønsket å skrive: "String er i PHP er enkelt", som en streng, kan du gjøre dette:

'Strings \' s i PHP er enkle. '

Se? Bakslagene vil instruere PHP til å skrive ut det enkle sitatet i stedet for å avslutte den faktiske strengen.

Den andre tingen å merke seg er at hvis du har en variabel, vil det ikke bli erstattet når sitert i enkelt anførselstegn. Anta for eksempel at du har en variabel som heter $ name og den inneholder verdien "Envato".

Mer spesifikt, i kode, vil dette se slik ut:

$ name = 'Envato'

Hvis du skulle legge inn $ name variabel til en annen streng, ville "Envato" ikke bli erstattet.

 $ name = 'Envato'; ekko 'Jeg skriver for $ navn. Det er veldig morsomt.';

Dette ville bare ekko: Jeg skriver for $ navn. Det er veldig morsomt.

Her er hvor dobbeltkvitater begynner å komme til nytte.

Double Quotes i PHP

Rett fra PHP-håndboken:

Hvis strengen er omsluttet i dobbelte sitater ("), vil PHP tolke flere fluktsekvenser for spesialtegn.

Du kan lese mer om fluktegnene og annen informasjon i PHP-håndboken, men la oss si at vi skulle omarbeide noen av strengene som vi har definert ovenfor.

Vårt første eksempel, det er det med det rømte enkelt sitatet, kan nå defineres som dette:

"String er i PHP er enkelt."

Vårt andre eksempel kan bli tatt et skritt videre: Ikke bare er flyktingssekvensen ikke lenger nødvendig, men variabelen vil også bli vurdert:

 $ name = 'Envato'; ekko "Jeg skriver for $ navn. Det er mye moro.";

Den andre linjen vil bokstavelig talt ekko: Jeg skriver for Envato. Det er veldig morsomt.

Så med dette dekket som en introduksjon, la oss snakke om spesifikkene til strenger i WordPress. Sannheten er at hvis du har en sterk forståelse for alt ovenfor, er det ikke mye mer å legge til enn noen få engangssaker.

Enkle sitater i WordPress

I tråd med PHP-kodingskonvensjonene følger den generelle tommelfingerregelen å alltid bruke enkle anførselstegn for å definere strengene dine.

Siden mye av arbeidet i WordPress inkluderer også å skrive ut markup innenfor en PHP-streng, er det best å plassere disse strengene i enkelt anførselstegn, slik at attributter av HTML-elementet kan være vedlagt i dobbelte anførselstegn.

For eksempel:

$ html = 'WordPress';

Åpenbart gir ovennevnte en mye renere leserfaring enn å måtte plassere flere fluktegn i å håndtere de dobbelte sitatene, skråstrekkene og så videre.

Hvis du har å gjøre med oppslag som må spenne flere linjer eller hvor du lager flere elementer, hvorav noen er barnelementer fra andre, anbefaler jeg alltid å kaste inn koden slik at den leser som et HTML-dokument, ville.

For eksempel:

 $ name = 'Tom McFarlin'; $ html = '
'; $ html. = ''. $ navn. ''; $ html. =
';

Det er viktig å merke seg at dette ikke er en del av WordPress Coding Standards - denne konvensjonen er en som jeg bare finner nyttig når det gjelder å opprettholde kode - men husk at single citerte strenge gjør ikke evaluer verdien av en variabel.

Som sådan er det viktig å merke seg at i dette tilfellet bruker vi strengkonsentrasjon for å inkludere variabeldefinisjonen.

Double Quotes i WordPress

Akkurat som med dobbelte anførselstegn i PHP, er det viktig å merke seg at det er tider hvor det er mer å foretrekke å bruke dem, spesielt når du må vurdere en variabel.

Ved å bruke eksemplet fra koden ovenfor, ville vi tilpasse det som følger:

 $ name = 'Tom McFarlin'; $ html = "
"; $ html. ="$ name"; $ html. ="
";

Legg merke til at vi erstattet alle de enkelte sitater med dobbelte anførselstegn, og at vi ikke lenger trenger å utføre noen strengforbindelser med $ name variabel siden det vil bli vurdert.

Det er også viktig å merke seg at selv om det er uten tvil mer vanlig for å se doble anførselstegn som er brukt på HTML-attributter, fungerer enkeltnoteringer også bra, spesielt i scenarier som dette.


Men det er unntak

Når du arbeider med strenger og ulike programmeringsspråk - nemlig HTML - kan det bli litt komplisert når det gjelder hvordan du nester koden din.

For eksempel, si at du bruker PHP til å skrive ut JavaScript som er ansvarlig for å gjengi noen HTML. I dette scenariet skal du skrive mange anførselstegn.

Selv om det er mulig å bare endre siteringstilstandene dine, vil dette ikke fungere 100% av tiden.

Selv kodestandarden stat:

Et unntak fra dette er JavaScript, som noen ganger krever doble eller enkle anførselstegn.

Selv om det er tider hvor du kanskje ikke kan gjøre dette, styrker dette ideen om at vi skal streve for å holde hvert programmeringsspråk i sin egen filstil og inkludere dem når og hvor det er nødvendig.


Er det noen sikkerhetsproblemer?

Ja, men WordPress gjør dem svært enkle å administrere, og selv om dette teknisk sett faller under datavalidering, er det nært knyttet til akkurat det vi diskuterer i denne artikkelen.

Det primære problemet er at det er tider hvor vi kan skrive ut HTML-attributter dynamisk til vårt oppslag som har verdier vi ikke kan forvente. I slike tilfeller må vi kunne unnslippe nevnte data.

Heldigvis gir WordPress esc_attr funksjon. Enkelt sagt, vil denne funksjonen ta en innkommende streng og kode inn tegnene for å sikre at de blir gjengitt til nettleseren på riktig måte.

Praktisk sett vil du bruke det akkurat som Codex demonstrerer:

 ekko '';

For mer informasjon, vær sikker på å se gjennom Codex-artikkelen.


Konklusjon

Så, som en generell tommelfingerregel, bør du holde fast ved å bruke enkle anførselstegn med mindre du skal evaluere en streng, eller du kommer til å returnere og echo'ing HTML, JavaScript eller muligens til og med CSS tilbake til den som ringer.

Akkurat som kodestandarder oppgir:

Du bør nesten aldri unnslippe sitater i en streng, fordi du bare kan bytte siteringstilen.

Når du jobber med strenge i ditt fremtidige arbeid, må du huske disse prinsippene, og det kan gå langs veien for å sikre at strengene dine er like rene og enkle å forstå som mulig i sammenheng med WordPress-baserte prosjekter.