
Előző leckéinkben lefedtük azokat az elemeket, amelyek a PHP if állításához kapcsolódnak. Vannak azonban olyan helyzetek, mikor az if és annak formái egyszerűen nem elég hatékonyak.
Tegyük fel, hogy van egy változónk, mely különböző úti célokat tartalmaz, és eme változó alapján szeretnénk más-más tanácsokat adni az utazóknak. Példánkban több úti célról van szó, így egy borzalmasan hosszú és bonyolult if/else if/else if/else blokkra lenne szükségünk. Nem hangzik túl jól, nem igaz? Nézzünk hát egy másik megoldást!
A switch állítás segítségével egyszerre ellenőrizhetjük az összes feltételt, a programozás pedig sokkal hatékonyabb lesz.
A switch állítás úgy működik, hogy megragad egy változót, melyet bemenetként (input) kezel, majd a változót a switch állításhoz beállított esetekhez (case) hasonlítja. Ahelyett, hogy minden elemet külön tesztelnénk, mint az if állítások esetében, a switch egyszerre valósítja ezt meg. Lássuk a szintaxist:
Példa a PHP switch állítására
Ha visszatérünk a cikk elején említett utazós példához, akkor a $destination változó mellé a következő eseteket rendelhetjük: Las Vegas, Amszterdam, Egyiptom, Tokió és Hawaii. Lássuk, hogyan festene a kódunk, ha mindegyik úti cél mellé más-más tanáccsal szeretnénk kedveskedni a weboldalunkra látogató turistáknak!
PHP-kód:
Megjelenítés a böngészőben:
Ide utazol: Tokió
Szükséged lesz zsebpénzre!
Mivel a $destination változó értéke Tokió, a PHP a switch végrehajtása során azonnal rákeresett arra az esetre, amely a “Tokió” értéket tartalmazza. És mivel talált ilyet, azt a kódot írta ki, amelyet ez a szegmens tartalmaz.
Megfigyelhetted, hogy minden eset (case) tartalmaz egy break elemet a kódrészlet végén. Ez a break elem arra való, hogy megakadályozza, hogy más esetek is lefussanak. Tegyük fel, hogy a kód nem tartalmazza a break állításokat. Mi történne? Nos, a PHP lefuttatna minden olyan esetet is, amely a “Tokió” után található — ezt pedig nem szeretnénk! A break hasznos eleme a switch állításoknak, tehát fontos megjegyezni, mire való, és mi a feladata. A kezdő programozóknak azt ajánljuk, hogy mindenképp használják a break elemet, hogy elkerüljék a felesleges problémákat!
A switch állítás szerkezete elég egyedi és különleges, úgyhogy mindenképp érdemes barátkoznunk vele még egy kicsit, mielőtt továbblépnénk. Lássunk hát még egy példát:
PHP-kód:
A fenti kódrészlet minden hétköznap más üzenettel várja a látogatót, viszont szombat és vasárnap ugyanaz az üzenet jelenik meg, mert a 6. nap esete nem tartalmaz kódrészletet vagy break állítást, ezért a következő eset kódrészlete is lefut. Így tudjuk több esetben is lefuttatni ugyanazt a kódrészletet.
Az alapeset — deafult case
Ha már megbarátkoztál az if állítások különféle típusaival, észrevehetted, hogy a fenti kódokban nincs hova beírni, mi a teendő, ha a változó nem felel meg a feltételeknek. Az if esetében ezt az else segítségével tehettük meg, a switchnél pedig a deafult eset alkalmas erre.
Általában ajánlatos a deafult, vagyis az alapesetet is beszúrni a switch állításba. Bemutatunk egy példát, melyben egyik eset sem felel meg a változónknak. Ilyenkor a deafult case lesz lefuttatva. Fontos: a kódban a case szó nem szerepel a deafult szó előtt, mert a deafult egy speciális kulcsszó!
PHP-kód:
Összegzés:
Elsőre talán bonyolultnak tűnt, de reméljük, a switch sem okozott különösebb fejfájást. Gyakorold az if variációkat és a switch állítást szorgalmasan, hiszen programozói karriered során nagy szükséged lesz rájuk. Következő leckénkben a PHP egy másik területére kalandozunk el, tarts velünk!
NYEREMÉNYJÁTÉK!
Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.
A játék heti kérdése:
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig
a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!
Néhány szó rólunk:
Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.