In deze serie bekijken we de WordPress PHP-coderingsstandaarden om meer inzicht te krijgen in de manier waarop WordPress-kwaliteitskwaliteit moet worden geschreven.
Natuurlijk, dit alles is gedocumenteerd in de WordPress-coderingsstandaarden en het is een site die elke WordPress-ontwikkelaar als bladwijzer moet hebben en die bij de hand is wanneer hij aan een thema, een plug-in of een toepassing werkt; Als u zich echter alleen maar bezig gaat houden met de ontwikkeling van WordPress, is het van belang de redenering te begrijpen waarom de conventies zijn zoals ze zijn.
In dit artikel gaan we een kijkje nemen naar het gebruik van enkele aanhalingstekens en dubbele aanhalingstekens, specifiek voor strings.
Dit is misschien wel het kortste, meest rechttoe rechtaan artikel in de serie, maar het moet enkele belangrijke nuances behandelen, aangezien het betrekking heeft op het werken met enkele aanhalingstekens, dubbele aanhalingstekens en strings in WordPress.
Voordat we discussies over strings bespreken, omdat ze betrekking hebben op WordPress, is het belangrijk om te begrijpen hoe de PHP-taal tekenreeksen interpreteert wanneer deze enkel of dubbel geciteerd zijn.
Ten eerste is de eenvoudigste, meest directe manier om een string in PHP te definiëren, om het eenvoudigweg te omsluiten met enkele aanhalingstekens (dat wil zeggen, het 'teken').
Zoals bij de meeste programmeertalen, daar zijn manieren om te ontsnappen aan personages, zodat je een letterlijke tekst kunt opschrijven. Als u bijvoorbeeld wilt schrijven: "String in PHP is eenvoudig", als een tekenreeks, kunt u dit doen:
'String \' s in PHP zijn eenvoudig. '
Zien? De backslashes geven PHP de opdracht om het enkele citaat uit te schrijven in plaats van de eigenlijke reeks te beëindigen.
Het tweede ding om op te merken is dat als je een variabele hebt, dat zal doen niet worden vervangen als ze tussen enkele aanhalingstekens worden geplaatst. Neem bijvoorbeeld aan dat je een variabele hebt gebeld name $
en het bevat de waarde "Envato".
Meer specifiek zou dit in code er als volgt uitzien:
$ name = 'Envato'
Als je het zou insluiten name $
variabele in een andere string, 'Envato' zou niet worden vervangen.
$ name = 'Envato'; echo 'Ik schrijf voor $ naam. Het is heel erg leuk.';
Dit zou gewoon echoën: Ik schrijf voor $ naam. Het is heel erg leuk.
Hier beginnen dubbele aanhalingstekens van pas te komen.
Rechtstreeks uit de PHP-handleiding:
Als de string tussen dubbele aanhalingstekens staat ("), interpreteert PHP meer escape-sequences voor speciale tekens.
Je kunt meer lezen over de escape-tekens en andere informatie in de PHP-handleiding, maar laten we zeggen dat we een aantal van de reeksen die we hierboven hebben gedefinieerd, moeten herwerken.
Ons eerste voorbeeld, dat is het exemplaar met het ontsnapte enkele aanhalingsteken, kan nu als volgt worden gedefinieerd:
"String in PHP is eenvoudig."
Ons tweede voorbeeld zou een stap verder kunnen gaan: niet alleen is de escape-sequentie niet langer nodig, maar de variabele zal ook worden geëvalueerd:
$ name = 'Envato'; echo "Ik schrijf voor $ naam. Het is erg leuk.";
De tweede regel echoot letterlijk: Ik schrijf voor Envato. Het is heel erg leuk.
Dus laten we dit bespreken als een inleiding, laten we het hebben over de bijzonderheden van strings in WordPress. De waarheid is dat, als je een goed begrip hebt van al het bovenstaande, er niet veel meer is om toe te voegen dan een paar eenmalige gevallen.
In overeenstemming met PHP-coderingsconventies, is de algemene vuistregel die gevolgd moet worden om altijd enkele aanhalingstekens te gebruiken om uw strings te definiëren.
Omdat veel van het werk in WordPress ook het opschrijven van markeringen omvat binnen een PHP-string, is het het beste om die strings in enkele aanhalingstekens te plaatsen, zodat de attributen van het HTML-element tussen dubbele aanhalingstekens kunnen staan.
Bijvoorbeeld:
$ html = 'WordPress';
Uiteraard zorgt het bovenstaande voor een veel schonere leeservaring dan het plaatsen van meerdere escape-tekens om de dubbele aanhalingstekens, de schuine strepen enzovoort te verwerken.
Als u te maken heeft met opmaak die meerdere regels moet overbruggen of waar u verschillende elementen maakt waarvan sommige onderliggende elementen van anderen zijn, raad ik aan de code altijd in te knippen zodat het lijkt alsof een HTML-document zou zijn.
Bijvoorbeeld:
$ name = 'Tom McFarlin'; $ html = ''; $ html. = ''. $ naam. ''; $ html. =';
Het is belangrijk op te merken dat dit geen deel uitmaakt van de WordPress-coderingsstandaarden - deze conventie is er een die ik eenvoudig nuttig vind als het aankomt op het onderhouden van code - denk er echter aan dat enkele geciteerde tekenreeksen niet de waarde van een variabele evalueren.
Als zodanig is het belangrijk op te merken dat we in dit geval string concatenation gebruiken om de variabele definitie op te nemen.
Net als bij dubbele aanhalingstekens in PHP, is het belangrijk op te merken dat er tijden zijn waarin het beter is om ze te gebruiken, vooral wanneer u een variabele moet evalueren.
Bij het gebruik van het voorbeeld uit de bovenstaande code zouden we het als volgt aanpassen:
$ name = 'Tom McFarlin'; $ html = ""; $ html. ="name $"; $ html. ="";
Merk op dat we alle enkele aanhalingstekens hebben vervangen door dubbele aanhalingstekens en dat we geen tekenreeksaaneenschakeling meer met de name $
variabele omdat deze wordt geëvalueerd.
Het is ook belangrijk om op te merken dat, hoewel het aantoonbaar is vaker om dubbele aanhalingstekens toegepast op HTML-kenmerken te zien, werken enkele aanhalingstekens ook prima, vooral in scenario's als deze.
Bij het werken met strings en verschillende programmeertalen, namelijk HTML, kan het een beetje ingewikkeld worden in termen van hoe je je code nestelt.
Stel bijvoorbeeld dat u PHP gebruikt om JavaScript uit te schrijven dat verantwoordelijk is voor het renderen van wat HTML. In dit scenario gaat u veel offertes schrijven.
Hoewel het mogelijk is om eenvoudigweg uw citeerstijlen af te wisselen, zal dit niet 100% van de tijd werken.
Zelfs de coderingsstandaards staat:
Een uitzondering hierop is JavaScript, waarvoor soms dubbele of enkele aanhalingstekens nodig zijn.
Hoewel er momenten zijn waarop je dit misschien niet kunt doen, versterkt dit het idee dat we ernaar moeten streven elke programmeertaal in zijn eigen bestandsstijl te houden en ze op te nemen waar en wanneer nodig.
Ja, maar WordPress maakt ze extreem gemakkelijk te beheren, en hoewel dit technisch valt onder gegevensvalidatie, hangt het nauw samen met wat we in dit artikel bespreken..
Het grootste probleem is dat er soms dynamische HTML-kenmerken naar onze markeringen worden geschreven met waarden die we niet kunnen verwachten. In gevallen zoals deze moeten we aan die gegevens kunnen ontsnappen.
Gelukkig biedt WordPress de esc_attr
functie. Simpel gezegd, deze functie neemt een inkomende string en codeert de karakters om er zeker van te zijn dat ze correct in de browser worden weergegeven.
Praktisch gezien zou je het precies zo gebruiken als de Codex laat zien:
echo '';
Bekijk het Codex-artikel voor meer informatie.
Dus, als een algemene vuistregel, moet je vasthouden aan het gebruik van enkele aanhalingstekens tenzij je gaat een string evalueren of je gaat terug en echoën van HTML, JavaScript of mogelijk zelfs CSS terug naar de beller.
Net zoals de coderingsnormen vermelden:
Je zou bijna nooit aan quotes in een string moeten ontsnappen, omdat je gewoon je quotingstijl kunt afwisselen.
Dus houd rekening met je toekomstige werk, houd deze principes in gedachten en het kan ervoor zorgen dat je snaren zo schoon en gemakkelijk te begrijpen mogelijk zijn binnen de context van je WordPress-gebaseerde projecten.