Objektorientert programmering i WordPress Typer

For de som nettopp har startet denne serien, merk at vi tar en titt på objektorientert programmering ved hjelp av PHP i sammenheng med WordPress.

Målgruppen

Vi gjør det fra perspektivet til veldig nybegynner, så hvis du er en erfaren utvikler, eller er kjent med mange av aspektene ved objektorientert programmering, så er denne serien trolig ikke for deg.

Med det sagt, hvis du er interessert i å lære objektorientert programmering i PHP, og du anser deg selv som en nybegynner, så skal vi fortsette serien i denne artikkelen ved å snakke om noen av datatypene som PHP tilbyr.

Men først, sørg for at du har fanget opp på de forrige artiklene i serien som de hver bygger på hverandre:

  1. Introduksjon
  2. klasser

Når du er ferdig, kan vi begynne å snakke om typer.

Hva er typer?

Vi endte den siste artikkelen med følgende:

Vi kommer til det, men først må vi diskutere noen av de mer primitive aspektene av programmering som strenger, arrayer, looper og conditionals.

Nå er strenge, arrays og så videre hva vi vurderer typer. Loops og conditionals er det som er kjent som kontrollstrukturer som vi dekker i neste artikkel.

Så i mellomtiden, la oss komme opp med et enkelt begrep for hva en datatype representerer slik at vi vet hvordan de skal konseptuelt modellere dem fremover ikke bare med denne artikkelen, men med resten av innholdet i serien.

For alle som har skrevet noen kode som inneholder variabler, så har du sannsynligvis virket som om følgende:

  • $ name = 'Tuts + WordPress';
  • $ is_active = true;
  • $ alder = 42;
  • … og så videre.

I den mest grunnleggende formen vil du trolig høre ovenstående kode definert som variabler med definisjoner, og det er riktig, men det er en veldig generalisert definisjon.

Du ser, når du definerer en variabel i PHP, så gjør du ved å prefikse variabelen med $. Dette lar PHP vite at du definerer en variabel, og at den vil representere en typisk verdi.

Lett nok, rett?

Saken er, det er forskjellig typer i PHP. For de som kommer fra det som er kjent som "sterkt typede språk", snakker vi om det enda flere ganger, men vet at PHP tilbyr følgende datatyper:

  • booleans
  • heltall
  • flytende punktnumre
  • strenger
  • arrays
  • objekter
  • … og mer

Alt fra booleaner gjennom strenge kan betraktes som en enkel datatype der som arrays og objekter kan betraktes som mer komplekse datatyper.

Enkle datatyper

Enkle datatyper er definert som sådan fordi dataene de representerer er, vet du, enkel. Det vil si at det normalt vil falle under banneret til sanne, falske, desimale og ord og / eller setninger.

Å gi konkrete eksempler på hver av de ovennevnte:

  • Boolske verdier er ment å holde verdien av ekte eller falsk.
  • Hele helhetene refererer til hele tall. Det vil si at den ikke inneholder noen brøkdel eller desimalkomponenter til den. Dette inkluderer tall som -12, -2, 1, 100, 5000, og så videre.
  • Floating Point Numbers er snill motsatt av helheter ved at de gjøre representere verdier med brøkdeler. Så, for eksempel, kan du se 3,1459, 2.5, 100,25, og så videre. Hvis du skulle prøve å lagre verdien av, si, 3/4 da ville du faktisk spare .75 med mindre Du lagret det som en streng. Det var, du skulle redde '3/4'. Legg merke til den subtile avgrensningen mellom de to? Man har sitater og man gjør det ikke.
  • Snakker om strenger, representerer strenger et enkelt ord eller sett med alfanumeriske tegn som utgjør en rekke bokstaver og tall. Dette kan være et enkelt ord, det kan være setning, det kan være setninger, og det kan være en tilfeldig rekke tegn som en kryptert streng. Eksempler på strenger inkluderer 'setninger som dette' eller en singel 'ord' eller enda noe mer komplisert som 'E952098vjdkw94kd'

Her er fangsten, men noen av de ovennevnte datatyper kan konverteres til strenger ved å pakke dem inn i anførselstegn.

Men det er en fangst

Hvis du for eksempel skulle jobbe med den boolske verdien av, si sant, men du skulle lagre den i en variabel som dette: $ is_active = 'true'; da har du faktisk nettopp opprettet en streng som leser ekte.

Tilsvarende, hvis du skulle skrive en streng som leser $ alder = '42'; da har du opprettet en streng som inneholder nummeret 42ikke et heltall.

Gir mening?

Årsaken til at dette er viktig, er at når det kommer tid til å jobbe med kontrollstrukturer, som vi vil se gjennom i neste artikkel, er det noen ganger at løpende sammenligninger kan få utilsiktede konsekvenser hvis du ikke er sikker hvilken datatype som du arbeider med.

Komplekse datatyper

I tillegg til enkle datatyper har vi også komplekse datatyper som, etter min mening, egentlig ikke er at komplisert. Faktisk tenker jeg på det som en fancy måte å si at vi har måter å lagre på flere deler av informasjon til en enkelt variabel; mens vi med enkle typer har mulighet til å lagre enkeltbiter av informasjon i en enkelt variabel.

Ganske lett å huske, ikke sant? Så hva er noen av de mer komplekse datatyper?

De to primære komplekse datatyper som vi skal fokusere på i denne serien som arrays og objekter. Det er flere, men de er utenfor rekkevidden av denne serien, så hvis du er interessert, kan du ta en titt på PHP-håndboken, men jeg advarer deg: Hvis du er en absolutt nybegynner, kan innholdet føle seg litt overveldende.

  • Arrays er måter å lagre flere deler av informasjon på i en samling. Tenk for et øyeblikk at du har et sett med navn du vil lagre inn i en samling som egentlig heter $ names. I PHP definerer du en matrise og tilordner den til en variabel som dette: $ names = ['John', 'Paul', 'Ringo', 'George']; Legg merke til at vi har en rekke strenger, men et annet aspekt av PHP-arrays er at de kan holde flere datatyper. Det betyr at du kan ha et utvalg som ser ut som $ various_types = [42, TRUE, 'Star Wars', .007];. Bare kult, ikke sant?
  • Associative Arrays er akkurat som standard arrays som vi ser om bortsett fra at de er laget av nøkkelverdier par. Dette betyr at hver verdi hentes med en nøkkel, så hvis vi skulle konvertere den første gruppen til en assosiativ array, kan det se slik ut: array ('rytme-gitar' => 'John', 'bass' = ' > 'Paul', 'lead-gitarist' => 'George', 'drums' => 'Ringo'); Hvis formatet ser ut som rart akkurat nå, ikke bekymre deg for det! Vi vil se på disse i mye mer detalj senere i serien. Den primære ta bort er at standardarrayer er indeks numerisk - det vil si, 0, 1, 2, 3, og så videre - og tilhørende arrays er indeksert av sine nøkler som 'Rytme-gitar', 'trommer', og så videre.
  • Objekter, som vi berørte på forrige gang, er uten tvil det mest komplekse av datatypene som tilbys av PHP fordi de er en kombinasjon av alt. Deres attributter består av datatyper eller andre objekter, de er funksjoner, og de utfører operasjoner ikke bare på andre enkle datatyper, men også på komplekse datatyper.

Når det gjelder gjenstander som bekymret, er den beste måten å se hvor komplisert de kan få, å se dem i aksjon, noe vi vil være sikre på når vi bygger en plugin.

En kommentar om arrays

Merk at i noen språk må størrelsen på arrayet deklareres før du faktisk kan bruke den. For eksempel, i C, må du fortelle kompilatoren at arrayet vil holde nøyaktig, si 10 verdier.

I tilfelle av PHP er dette ikke saken. PHPs array er dynamisk, noe som betyr at du kan fortsette å legge til data i arrayet uten å måtte øke størrelsen. Ja, som med noe, er det grenser, men det er vanligvis relatert til størrelsen på dataene som lagres, eller hvor mye minne en maskin har tilgjengelig.

Ikke la setningene skremme deg!

Men for øyeblikket, ikke la ordene enkel og komplekse skremme deg. Gitt, "enkel" er relativt grei, ikke sant? Men "kompleks" har denne konnotasjonen at det blir vanskelig å forstå, og det er ikke sant - forhåpentligvis er denne artikkelen vist at.

Komplekse datatyper kan enkelt holde flere biter av data. Enkelte datatyper kan ikke.

Er det mer?

Ja, det er det. Nemlig ressurser, tilbakeringinger og pseudotyper. De fleste av disse er ute av bruk for denne serien; men vi kan ender opp med å bruke tilbakeringinger (som er en bestemt type funksjoner) senere når vi begynner å bygge pluginet vårt.

Vær så snill å lese på disse så mye som mulig, men vet at de er utenfor omfanget av innholdet som vi skal dekke gjennom denne serien, så hvis du føler deg overveldet av dem, kan du kanskje se dem igjen når serien er fullført.

Et ord om sterke språk

Noen programmeringsspråk er kjent som er dynamisk skrevet (eller svakt skrevet) der som andre er kjent som kraftige språk.

Dette er et annet tilfelle der terminologien ofte skremmer nye programmerere i stedet for å gi dem beskjed om hvordan de kan bruke verktøyene som er tilgjengelige for å være, men de særegne faktorene blant de to er egentlig ganske enkle:

  • Sterkt skrevet språk betyr at variablene først skal deklareres som en bestemt type, og de kan bare hold en bestemt type data. For eksempel, hvis jeg ønsket å holde en streng, ville jeg deklarere variabelen som streng sMyName; Da lagde jeg en streng inn i variabelen. sMyName = 'Tom McFarlin';. Dette betyr at sMyName variabel boks bare hold strenger. Hvis du prøver å lagre en annen datatype i den variabelen, vil kompilatoren kaste en feil.
  • Dynamisk skrivte språk, for eksempel PHP, tillater en enkelt variabel å holde flere typer på et gitt utførelsessted. Ved å bruke eksemplet ovenfor kan jeg bruke så enkelt å si$ my_name = 'Tom McFarlin'; som jeg kunne $ my_name = false.  Hvis du prøver å lagre en annen datatype i den variabelen, fungerer det bra. Du kan se at dette har begge fordelene som ulemper.

Hvor til neste?

Før vi går tilbake til en verden av objektorientert programmering, må vi snakke om noen få grunnleggende strukturer for programmering, for eksempel kontrollstrukturer. 

Disse inkluderer ting som looper, conditionals, og så videre som kan påvirke strømmen av kode gjennom hele levetiden til programmet. I tillegg arbeider de hånd i hånd med datatyper som vi har skissert her.

Så før vi går inn i neste artikkel, må du kontrollere at du vurderer alt som skjer her, la kommentarer, spørsmål og tilbakemelding i kommentaren feed.

 Jeg ser deg i neste artikkel!