För de av er som har följt med serien hittills vet du att vi tar en titt på objektorienterad programmering, särskilt ur nybörjarperspektivet.
Det betyder att vi närmar oss ämnet inte bara för dem som tittar på hur man kommer igång med paradigmet, men vi tittar på alla de olika funktionerna i PHP som utgör språket och som slutligen används inom sammanhang av objektorienterad programmering.
Dessutom gör vi allt detta inom ramen för WordPress så att vi i slutet av serien kan se hur en praktisk tillämpning av hur allt detta kan användas inom ett verkligt världsexempel.
Om det här är första gången du läser en artikel i serien, rekommenderar jag starkt att du kolla in de föregående artiklarna, eftersom varje artikel i denna serie bygger på den innan den.
Hittills har vi täckt följande:
I den här artikeln ska vi prata om kontrollstrukturer.
"Kontrollstrukturer" är en snygg term som beskriver hur vi kan, hm, kontrollera hur koden flyter genom vårt program baserat på ett antal faktorer.
Låt oss till exempel säga att vi vill gå vidare genom en viss uppsättning instruktioner, men du vill göra det något om en variabel är inställd eller en annan uppsättning instruktioner för en annan variabel är inställd.
Eller låt oss säga att du har en uppsättning data som du vill slingra genom att läsa varje värde, ställa in varje visst värde eller till och med skapa vissa värden.
Vad som än är fallet är det sättet du går på att göra detta genom att använda kontrollstrukturer. I återstoden av denna artikel kommer vi att täcka två typer av kontrollstrukturer: Conditionals och Loops.
Även om conditionals och loopar är de typer av kontrollstrukturer som vi ska granska, finns det delsubstanser av varje.
Till exempel har conditionals:
om då
uttalandenswitch fallet
uttalanden
Loops, å andra sidan, har några andra variationer:
för
för varje
do
medan
Även om dessa kan vara nya konstruktioner för några av er har vi redan täckt grunderna i de tidigare artiklarna, så vi har allt vi behöver för att gå vidare.
Enligt min åsikt är villkorliga uttalanden något av det enklaste att förstå när de läser mer som meningar än många andra typer av programmeringsutlåtanden. Till exempel, om du bokstavligen säger "om detta villkor är sant, gör sedan den här åtgärden, annars gör du den här åtgärden."
Visst, det blir en liten mer komplicerat än det om du har sagt några andra villkor att kontrollera innan du bestämmer dig för en åtgärd, men kärnan av den förblir densamma.
Så med det sagt, låt oss börja med att titta på en av de två variationerna av conditionals som erbjuds av PHP.
om då
uttalandenSom tidigare nämnts är det mest grundläggande villkorliga uttalandet av formuläret om annat
, och du ser vanligtvis det skrivet så här:
Naturligtvis förklarar detta fortfarande inte riktigt hur kontrollstrukturen fungerar, gör det? Jag menar, Visst, det ger lite av ett skelett för hur man tittar på det, men det lämnar mer att önska.
Namnlösa: Vad är det här tillstånd linje? För det andra, vilka handlingsplaner som kontrollstrukturen kan ta?
Först, det tillstånd avser varje uttalande som kan utvärderas som ett booleskt uttryck. Vettigt? Enkelt uttryckt, tillstånd representerar alla uttalanden som kan utvärderas som
Sann
ellerfalsk
.Så, till exempel, låt oss säga att vi har två värden:
$ is_active
$ TOTAL_COUNT
Dessa är uppenbarligen något generiska värden, men låt oss säga det om
$ is_active
är satt till true, då ökar vi$ TOTAL_COUNT
av en; annars kommer vi att subtrahera$ TOTAL_COUNT
av en.Så här kan det se ut i kod:
I ovanstående exempel,
$ TOTAL_COUNT
kommer att ökas med en eftersom$ is_active
utvärderar till sant.Alternativt, låt oss säga
$ is_active
är satt tillfalsk
.I detta exempel,
$ TOTAL_COUNT
kommer att minskas med en eftersom$ is_active
utvärderar till falskt.Nu, innan vi tittar på nästa exempel är det viktigt att förstå att det här är extremt triviala exempel. Syftet med dessa exempel är inte att visa hur man tar komplexa operationer och att kombinera dem i de villkorliga konstruktionerna, utan istället hur man använda sig av de villkorliga konstruktionerna.
När vi kommer till den del av serien som vi börjar skriva ett plugin ser du hur vi kan använda mer utarbetade uttryck inom en praktisk applikation.
Med det sagt, låt oss titta på ytterligare ett exempel på om / då uttalanden. I det här exemplet tar vi en titt på
Om / ElseIf / annat
. För att komma igång, låt oss anta det$ is_active
är satt till true och$ TOTAL_COUNT
är inställd på 10.= 10) $ total_count = $ total_count + 1 annat $ total_count = $ total_count - 1;Ovanstående kod kan läsas så här:
$ is_active
är satt till true, sätt sedan in $ TOTAL_COUNT
till en. $ is_active
är inte sant.$ TOTAL_COUNT
är större än eller lika med 10, öka därefter $ TOTAL_COUNT
med 1. The $ TOTAL_COUNT
är lika med 10, så vi ökar $ TOTAL_COUNT
till 11.$ TOTAL_COUNT
var inte större än eller lika med 10, då skulle vi minska den $ TOTAL_COUNT
av en.När klockblocket avslutas exekveras i ovanstående exempel, $ TOTAL_COUNT
kommer att vara lika med 11.
Vettigt?
Det är därför som vi kallar dessa kontrollstrukturer: Dessa uttalanden (eller utvärderingar) tillåter oss att bestämma vilken kod som ska köras baserat på vissa villkor.
För dem som har programmerat ett tag, är du bekant med mer komplexa uttryck med hjälp av operatörer som &&
och ||
och så vidare. Vi kommer så småningom att få det, men inte i den här artikeln.
Allt som säger, det är ett ämne jag är medveten om och det kommer vi att täcka, men inte idag.
För er som är mer erfarna med programmering är du troligen bekant med den ternära operatören.
Vi kommer inte att ta en titt på det i denna speciella serie artiklar eftersom det ligger utanför ramen för det vi ser att täcka; Men om du känner dig äventyrlig och letar efter ett mer kortfattat sätt att skriva en enkel om annat
uttalanden, sedan kassera den ternära operatören i PHP manualen.
switch fallet
uttalandenMed det sagt finns det en ytterligare typ av villkor att vi måste titta på innan vi går vidare till nästa ämne.
Denna speciella konstruktion faller fortfarande under villkorliga uttalanden; Jag skulle dock argumentera för att du skulle se det använda mindre ofta än dess om annat
motsvarighet.
Som titeln betecknar kallas detta switch fallet
påstående. Även om jag personligen tror att språket gör det lite mer komplicerat att följa, är det sätt på vilket kontrollen strömmar genom utvärderingarna inte mycket annorlunda än vad vi redan har sett.
Som vi gjorde med om annat
uttalanden, låt oss först titta på hur switch fallet
är strukturerad och sedan tar vi en titt på några triviala exempel.
Det första att notera om den här typen av villkor är att utvärderingen sker på en enda plats: längst upp i kvarteret bredvid
växla
påstående.Här sker utvärderingen en gång då varje av följande
fall
uttalanden är vad som dikterar vilken åtgärd som vidtas. Det finns även enha sönder
uttalande som ingår i var och en av de uttalanden som vi kommer att diskutera, och det finns också enstandard
block av kod längst ner som vi kommer att diskutera i slutet av artikeln också.Men innan vi gör något av det, låt oss skapa ett lite mer praktiskt exempel på vad som är grundläggande
switch fallet
uttalandet ser ut.Låt oss anta att vi har ett värde,
$ first_name
, och då vill vi ta en viss åtgärd utifrån personens förnamn. I det här exemplet ställer vi in en persons e-postadress baserat på deras förnamn. Om vi inte känner igen personens förnamn, ställer vi in värdet lika mednull
.Visst, det är lite av ett konstruerat exempel, men det kommer att visa på saken:
Låt oss se på flödet av kontroll i ovanstående exempel:
$ persons_name
som "Tom" och vi initierar $ EMAIL_ADDRESS
som en tom sträng.$ persons_name
till omkopplingsdeklarationen för utvärdering.$ persons_name
mot varje värde som anges i fallet uttalandet.$ persons_name
, sedan $ EMAIL_ADDRESS
kommer att ställas in på "[email protected]"Om vi skulle skicka "David" som $ persons_name
sedan $ EMAIL_ADDRESS
skulle ställas till "[email protected]".
Därefter, om vi skulle passera några annat namn än "Tom" eller "David", då $ EMAIL_ADDRESS
skulle ställas in på NULL
. Det är också viktigt att notera det switch fallet
är skiftlägeskänslig. Detta innebär att om du skulle skicka "tom" istället för "Tom", skulle de bli behandlade som olika fall.
Slutligen notera att varje fall
slutar med a ha sönder
påstående. Detta är viktigt eftersom ha sönder
instruerar koden att hoppa ur switch fallet
uttalande och fortsätta arbeta med vad som helst som kommer nästa gång.
Det är oerhört viktigt att förstå att om du glömmer ett break-uttalande kommer det omedelbart att falla ner till Nästa fall uttalande som uppenbarligen kan få oregelbundna resultat (som att ställa in fel $ EMAIL_ADDRESS
).
Ett exempel på var du kan utnyttja detta till din fördel är så här:
I ovanstående exempel har vi definierat fall för båda "Tom" när den är liten eller har den första bokstaven aktiverad och visar hur koden kommer att gå igenom till nästa
fall
påstående.Men det finns ett ännu bättre sätt att göra det mer bulletproof:
Observera att detta tar PHP-funktionen
strtolower
för att tvinga inkommande$ persons_name
att vara helt lägre Detta gör det möjligt för oss att förfina våra fallutlåtanden ännu mer.Vad är nästa??
I den här artikeln tittade vi på den första av två grupper av kontrollstrukturer som är tillgängliga för oss i PHP. Nej, det här är inte uttryckligen en del av objektorienterad programmering, men innan vi faktiskt kommer att prata om mer grundläggande aspekter av paradigmet, måste vi förstå alla de finare punkterna som tillåter oss att skriva objektorienterad kod.
För det ändamålet kommer vi att fortsätta denna diskussion om kontrollstrukturer i nästa artikel genom att titta på loopar.
Därefter är vi redo att göra vår uppmärksamhet åt funktionerna. För dem som är bekanta med procedurprogrammering är funktionerna inget nytt. Om du är ny för objektorienterad programmering, är det dock ett antal faktorer som skiljer dem från hur de används i procedurprogrammering.
Så det är färdplanen för nästa uppsättning artiklar. Som vanligt är feedback alltid välkommen och jag ser fram emot att fortsätta vår diskussion i nästa artikel.