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.
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:
Når du er ferdig, kan vi begynne å snakke om 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;
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:
Alt fra booleaner gjennom strenge kan betraktes som en enkel datatype der som arrays og objekter kan betraktes som mer komplekse 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:
ekte
eller falsk
.-12
, -2
, 1
, 100
, 5000
, og så videre. 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.'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.
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 42
, ikke 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.
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.
$ 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?0
, 1
, 2
, 3
, og så videre - og tilhørende arrays er indeksert av sine nøkler som 'Rytme-gitar'
, 'trommer'
, og så videre.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.
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.
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.
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.
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:
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.$ 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.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!