Voor degenen die net met deze serie beginnen, merk op dat we object-georiënteerd programmeren bekijken met behulp van PHP in de context van WordPress.
We doen dit vanuit het perspectief van de heel Beginner, dus als je een ervaren ontwikkelaar bent, of bekend bent met veel van de aspecten van objectgeoriënteerd programmeren, dan is deze serie waarschijnlijk niet voor jou.
Met dat gezegd, als jij zijn ben je geïnteresseerd in het leren van objectgeoriënteerd programmeren in PHP en beschouw je jezelf als een beginner, dan gaan we door met de serie in dit artikel door te praten over enkele gegevenstypen die PHP aanbiedt.
Maar eerst moet u ervoor zorgen dat u de vorige artikelen in de serie hebt overgenomen terwijl ze op elkaar zijn gebaseerd:
Als je eenmaal helemaal bent ingepakt, kunnen we beginnen te praten over typen.
We sloten het laatste artikel af met het volgende:
We komen daar aan, maar eerst moeten we enkele van de meer primitieve aspecten van programmeren bespreken, zoals strings, arrays, loops en conditionals..
Nu zijn strings, arrays, enzovoort, wat we typen beschouwen. Lussen en conditionals zijn zogenaamde controlestructuren die we in het volgende artikel zullen behandelen.
Laten we in de tussentijd een eenvoudige term bedenken voor wat een gegevenstype vertegenwoordigt, zodat we kunnen bepalen hoe ze conceptueel moeten worden gemodelleerd, niet alleen met dit artikel, maar ook met de rest van de inhoud in de serie.
Voor iedereen die heeft geschreven ieder code die variabelen bevat, dan heb je waarschijnlijk ongeveer het volgende geleken:
$ name = 'Tuts + WordPress';
$ is_active = true;
$ leeftijd = 42;
In de meest eenvoudige vorm zul je de bovenstaande code waarschijnlijk horen definiëren als variabelen met definities, en dat klopt, maar het is een zeer algemene definitie.
Zie je, wanneer je een variabele definieert in PHP, dan doe je dat door de variabele vooraf in te voeren $
. Hiermee weet PHP dat u een variabele definieert en dat deze een typische waarde vertegenwoordigt.
Makkelijk genoeg, toch?
Het ding is, er zijn verschillende types in PHP. Voor degenen die afkomstig zijn van zogenaamde 'sterk getypeerde talen', zullen we daar nu kortstondig over praten, maar weten dat PHP de volgende gegevenstypen biedt:
Alles van booleans via strings kan worden beschouwd als een eenvoudig gegevenstype waarbij arrays en objecten als complexere gegevenstypen kunnen worden beschouwd.
Eenvoudige gegevenstypen worden als zodanig gedefinieerd omdat de gegevens die zij vertegenwoordigen, weet u, eenvoudig. Dat wil zeggen dat het normaal onder de vlag van waar, onwaar, decimalen en woorden en / of zinnen valt.
Om concrete voorbeelden te geven van elk van de bovenstaande:
waar
of vals
.-12
, -2
, 1
, 100
, 5000
, enzovoorts. 3,1459
, 2.5
, 100.25
, enzovoorts. Als je probeert de waarde van bijvoorbeeld te redden, 3/4
dan zou je eigenlijk redden .75
tenzij je hebt het als een string bewaard. Dat wil zeggen, je moest redden '3/4'
. Let op de subtiele scheiding tussen de twee? De ene heeft aanhalingstekens en de andere niet.'uitdrukkingen als deze'
of een single 'woord'
of zelfs iets complexer zoals 'E952098vjdkw94kd'
. Dit is echter de valstrik: elk van de bovenstaande gegevenstypen kan worden omgezet in reeksen door ze tussen aanhalingstekens te wikkelen.
Bijvoorbeeld, als u zou werken met de booleaanse waarde van zeg, waar, maar u zou het in een variabele als deze moeten opslaan: $ is_active = 'waar';
dan heb je eigenlijk zojuist een string gemaakt die leest waar
.
Evenzo, als u een gelezen reeks zou schrijven $ age = '42';
dan heb je een string gemaakt met het nummer 42
, niet een geheel getal.
Logisch?
De reden dat dit van belang is, is dat wanneer het tijd is om met controlestructuren te werken - die we in het volgende artikel zullen bespreken - is dat een lopende vergelijking onbedoelde gevolgen kan hebben als u niet zeker weet welke gegevenstype waarmee u werkt.
Naast eenvoudige gegevenstypen hebben we ook complexe gegevenstypen die naar mijn mening niet echt zijn dat ingewikkeld. In feite vind ik het een mooie manier om te zeggen dat we manieren hebben om te bewaren meerdere stukjes informatie in een enkele variabele; terwijl we met eenvoudige typen een manier hebben om afzonderlijke stukjes informatie op te slaan in één enkele variabele.
Best gemakkelijk te onthouden, toch? Dus wat zijn enkele van de meer complexe gegevenstypen?
De twee primaire complexe datatypes waar we ons in deze reeks op zullen richten als arrays en objecten. Er zijn er meer, maar ze vallen buiten het bereik van deze serie, dus als je geïnteresseerd bent, neem dan gerust een kijkje in de PHP-handleiding, maar ik waarschuw je: als je een absolute beginner bent, kan de inhoud aanvoelen een beetje overweldigend.
$ names = ['John', 'Paul', 'Ringo', 'George'];
Merk op dat we een array van strings hebben, maar een ander aspect van PHP-arrays is dat ze meerdere gegevenstypen kunnen bevatten. Dat betekent dat je een array kunt hebben die eruit ziet $ various_types = [42, TRUE, 'Star Wars', .007];
. Nogal cool, toch??0
, 1
, 2
, 3
, enzovoort, en bijbehorende arrays worden geïndexeerd door hun toetsen, zoals 'Rhythm-gitaar'
, 'Drums'
, enzovoorts.Voor zover het objecten betreft, is de beste manier om te zien hoe complex ze kunnen zijn, door ze in actie te zien, wat we zeker zullen doen wanneer we een plug-in bouwen.
Merk op dat in sommige talen de grootte van de array moet worden gedeclareerd voordat u deze daadwerkelijk kunt gebruiken. In C moet je bijvoorbeeld aan de compiler zeggen dat de array exact, zeg, 10 waarden bevat.
In het geval van PHP is dit niet de zaak. De array van PHP is dynamisch, wat inhoudt dat u gegevens aan de array kunt blijven toevoegen zonder de grootte ervan te hoeven vergroten. Ja, zoals met alles, er zijn limieten, maar het is meestal gerelateerd aan de grootte van de gegevens die worden opgeslagen, of de hoeveelheid geheugen die een machine beschikbaar heeft.
Maar laat de woorden voorlopig niet liggen eenvoudig en complex intimideer je. Toegegeven, "eenvoudig" is relatief eenvoudig, toch? Maar "complex" heeft deze connotatie dat het moeilijk te begrijpen zal zijn, en dat is niet waar - hopelijk wordt in dit artikel aangetoond dat.
Complexe gegevenstypen kunnen eenvoudig meerdere gegevensstukken bevatten. Eenvoudige gegevenstypen kunnen dit niet.
Ja er zijn. Namelijk resources, callbacks en pseudo-types. De meeste hiervan vallen buiten het bereik van deze specifieke serie; Echter, wij mei Uiteindelijk gebruiken we callbacks (een bepaald soort functies) als we onze plug-in gaan bouwen.
Neem deze gerust zo veel mogelijk door, maar weet dat ze buiten het bereik vallen van de inhoud die we in deze specifieke serie zullen behandelen, dus als je je overweldigd voelt, kun je ze misschien opnieuw bekijken zodra de serie compleet is.
Sommige programmeertalen zijn bekend wat dynamisch getypt (of zwak getypt) is, terwijl anderen bekend staan als sterk getypeerde talen.
Dit is een ander geval waarin de terminologie vaak nieuwe programmeurs intimideert in plaats van ze te machtigen om te weten hoe de beschikbare tools te gebruiken, maar de onderscheidende factoren tussen de twee zijn eigenlijk vrij eenvoudig:
string sMyName
; Dan zou ik een string opslaan in de variabele. sMyName = 'Tom McFarlin';
. Dit betekent dat de sMyName
variabele kan enkel en alleen houd reeksen vast. Als u probeert een ander gegevenstype in die variabele op te slaan, geeft de compiler een foutmelding.$ my_name = 'Tom McFarlin';
zoals ik kon $ my_name = false
. Als u probeert een ander gegevenstype in die variabele op te slaan, dan werkt het prima. Je kunt zien dat dit zowel voordelen als nadelen heeft.Voordat we terugkeren naar de wereld van objectgeoriënteerd programmeren, moeten we het hebben over een paar extra basisstructuren van programmeren, zoals controlestructuren.
Deze omvatten dingen zoals loops, conditionals, enzovoort, die van invloed kunnen zijn op de stroom van code tijdens de levensduur van het programma. Bovendien werken ze hand in hand met de gegevenstypen die we hier hebben beschreven.
Dus voordat we naar het volgende artikel gaan, moet u controleren of alles wat hier gebeurt, opmerkingen, vragen en feedback achterlaten in de reactiefeed..
Ik zie je in het volgende artikel!