För dem som just startar den här serien noterar vi att vi tittar på objektorienterad programmering med PHP inom ramen för WordPress.
Vi gör det från perspektivet av mycket nybörjare, så om du är en erfaren utvecklare, eller är bekant med många av aspekterna av objektorienterad programmering, så är den här serien förmodligen inte för dig.
Med det sagt, om du är intresserad av att lära sig objektorienterad programmering i PHP och du anser dig själv nybörjare, så fortsätter vi serien i den här artikeln genom att prata om några av de datatyper som PHP erbjuder.
Men först, se till att du har fastnat på de tidigare artiklarna i serien som de bygger på varandra:
När du är helt upptagen kan vi börja prata om typer.
Vi avslutade den sista artikeln med följande:
Vi kommer till det, men först måste vi diskutera några av de mer primitiva aspekterna av programmering som strängar, arrays, loopar och conditionals.
Nu är strängar, arrays och så vidare vad vi anser vara typiska. Loops och conditionals är så kallade kontrollstrukturer som vi kommer att täcka i nästa artikel.
Så under tiden får vi komma fram till en enkel term för vad en datatyp representerar så att vi vet hur man begreppsmässigt ska modellera dem framåt inte bara med den här artikeln utan med resten av innehållet i serien.
För alla som har skrivit några kod som innehåller variabler, så har du sannolikt verkade något som följande:
$ name = 'Tuts + WordPress';
$ is_active = true;
$ ålder = 42;
I den mest grundläggande formen kommer du sannolikt att höra ovanstående kod definieras som variabler med definitioner, och det är korrekt, men det är en mycket generaliserad definition.
Du ser, när du definierar en variabel i PHP, så gör du genom att prefixera variabeln med $
. Detta gör att PHP vet att du definierar en variabel och att den kommer att representera ett typiskt värde.
Lätt nog, höger?
Saken är, det finns olika typer i PHP. För dem som kommer från så kallade "starkt skrivna språk" talar vi om det mer tillfälligt, men vet att PHP erbjuder följande datatyper:
Allt från booleaner via strängar kan betraktas som en enkel datatyp, där som arrays och objekt kan anses vara mer komplexa datatyper.
Enkla datatyper definieras som sådana eftersom de data de representerar är, vet du inte, enkel. Det vill säga att det normalt kommer att falla under bannern av sanna, falska, decimaler och ord och / eller meningar.
För att ge konkreta exempel på var och en av ovanstående:
Sann
eller falsk
.-12
, -2
, 1
, 100
, 5000
, och så vidare. 3,1459
, 2,5
, 100,25
, och så vidare. Om du skulle försöka spara värdet på, säg, 3/4
då skulle du faktiskt spara .75
såvida inte du räddade det som en sträng. Det var, du skulle spara '3/4'
. Lägg märke till den subtila avgränsningen mellan de två? Man har citat och man gör det inte."fraser som detta"
eller en singel 'ord'
eller till och med något mer komplext som 'E952098vjdkw94kd'
. Här är fångsten, men någon av ovanstående datatyper kan omvandlas till strängar genom att omslaga dem i citattecken.
Om du till exempel skulle arbeta med det booleska värdet av, säg sant, men du skulle lagra det i en variabel så här: $ is_active = 'true';
då har du faktiskt bara skapat en sträng som läser Sann
.
På samma sätt, om du skulle skriva en sträng som läser $ ålder = '42';
då har du skapat en sträng som innehåller numret 42
, inte ett heltal.
Vettigt?
Anledningen till att detta är viktigt är att när det är dags att arbeta med kontrollstrukturer, som vi kommer att se över i nästa artikel, är det ibland att körför jämförelse kan få oavsiktliga konsekvenser om du inte är säker som datatyp som du arbetar med.
Förutom enkla datatyper har vi också komplexa datatyper som enligt min mening inte är riktiga den där komplicerad. Faktum är att jag tycker om det som ett fint sätt att säga att vi har sätt att lagra flera bitar av information till en enda variabel; Med enkla typer har vi ett sätt att lagra enskilda bitar av information i en enda variabel.
Ganska lätt att komma ihåg, eller hur? Så vad är några av de mer komplexa datatyperna?
De två primära komplexdatatyper som vi kommer att fokusera på i denna serie som arrays och objekt. Det finns fler, men de ligger utanför ramen för denna serie, så om du är intresserad, ta gärna en titt på PHP-manualen, men jag varnar dig: om du är en absolut nybörjare kan innehållet känna lite överväldigande.
$ names = ['John', 'Paul', 'Ringo', 'George'];
Observera här att vi har en rad strängar, men en annan aspekt av PHP-arrays är att de kan hålla flera datatyper. Det betyder att du kan ha en matris som ser ut som $ various_types = [42, TRUE, 'Star Wars', .007];
. Kinda cool, rätt?0
, 1
, 2
, 3
, och så vidare - och tillhörande arrays indexeras av deras nycklar som 'rytm gitarr'
, 'trummor'
, och så vidare.När det gäller föremål som berörs, är det bästa sättet att se hur komplicerat de kan få, att se dem i åtgärd, vilket vi kommer att vara säkra på när vi bygger ett plugin.
Observera att på vissa språk måste storleken på arrayen deklareras innan du faktiskt kan använda den. Till exempel i C måste du berätta för kompilatorn att matrisen kommer att hålla exakt, säg 10 värden.
I fallet med PHP är detta inte fallet. PHP-arrayen är dynamisk vilket innebär att du kan fortsätta lägga till data i arrayen utan att behöva öka storleken. Ja, som med något, finns det gränser, men det brukar relateras till storleken på de data som lagras, eller hur mycket minne som en maskin har tillgänglig.
Men för tillfället, låt inte orden enkel och komplex skrämma dig. Beviljas, "enkel" är relativt enkelt, eller hur? Men "komplex" har denna konnotation att det blir svårt att förstå, och det är inte sant - förhoppningsvis visar den här artikeln att.
Komplexa datatyper kan enkelt hålla flera bitar av data. Enkla datatyper kan inte.
Ja det finns. Namnlösa: resurser, callbacks och pseudo-typer. De flesta av dessa är inte tillgängliga för denna serie. dock vi Maj sluta använda callbacks (som är en viss typ av funktioner) senare när vi börjar bygga vårt plugin.
Ta gärna upp dem så mycket som möjligt, men vet att de ligger utanför innehållets omfattning som vi kommer att täcka genom den här serien, så om du känner dig överväldigad av dem, kanske kolla dem igen när serien är klar.
Vissa programmeringsspråk är kända vad som är dynamiskt typat (eller svagt typat) där som andra är kända som starkt typade språk.
Det här är ett annat fall där terminologin ofta hotar nya programmerare snarare än att ge dem möjlighet att veta hur man använder de verktyg som finns tillgängliga, men de kännetecknande faktorerna mellan de två är verkligen ganska enkla:
sträng sMyName
; Då skulle jag lagra en sträng i variabeln. sMyName = 'Tom McFarlin';
. Detta innebär att sMyName
variabel burk endast håll strängar. Om du försöker lagra en annan datatyp i den variabeln kommer kompilatorn att kasta ett fel.$ my_name = 'Tom McFarlin';
som jag kunde $ my_name = false
. Om du försöker lagra en annan datatyp i den variabeln fungerar det bra. Du kan se att detta har båda fördelarna som nackdelar.Innan vi återvänder till objektorienterad programmering måste vi prata om några ytterligare grundläggande strukturer för programmering, såsom kontrollstrukturer.
Dessa inkluderar saker som loopar, conditionals, och så vidare som kan påverka flödet av kod under hela programmets livstid. Dessutom arbetar de hand i hand med de datatyper som vi har skisserat här.
Så innan vi går in i nästa artikel, se till att du granskar allt som händer här, lämna kommentarer, frågor och feedback i kommentarfältet.
Jag ser dig i nästa artikel!