A PHP switch állítása

A PHP switch állítása

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:

Switch (n) {
  case 1címke:
  // Kód, ami lefut, ha n=1címke
  break;
  case 2címke:
  // Kód, ami lefut, ha n=2címke
  break;
  ...
  default:
  // Kód, ami lefut, ha az n nem egyezik meg egyik esettel sem
}
 

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:

$destination = 'Tokió';
echo 'Ide utazol: ' . $destination . '<br />';
switch ($destination) {
              case 'Las Vegas':
                            echo 'Hozz magaddal 500 extra dollárt!';
              break;
              case 'Amszterdam':
                            echo 'Légy nyitott!';
              break;              
              case 'Egyiptom':
                            echo 'Hozz magaddal elegendő naptejet!';
              break;              
              case 'Tokió':
                            echo 'Szükséged lesz zsebpénzre!';
              break;
}
 

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:

<?php
$today = date('N');
switch ($today) {
  case 1:
  echo 'Ma hétfő van. Takaríts ki!';
  break;
  case 2:
  echo 'Ma kedd van. Vásárolj be!';
  break;
  case 3:
  echo 'Ma szerda van. Menj el fodrászhoz!';
  break;
  case 4:
  echo 'Ma csütörtök van. Mosd le a kocsit!';
  break;
  case 5:
  echo 'Ma péntek van. Menj el bulizni!';
  break;
  case 6:
  case 7:
  echo 'Hétvége van. Pihenj!';
  break;
}
?>
 

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:

$destination = 'New York';
echo 'Ide utazol: ' . $destination . '<br />';
switch ($destination) {
              case 'Las Vegas':
                            echo 'Hozz magaddal 500 extra dollárt!';
              break;
              case 'Amszterdam':
                            echo 'Légy nyitott!';
              break;              
              case 'Egyiptom':
                            echo 'Hozz magaddal elegendő naptejet!';
              break;              
deafult:
                            echo 'Csomagolj elegendő fehérneműt!';
              break;              
}
 
Megjelenítés a böngészőben:
Ide utazol: New York
Csomagolj elegendő fehérneműt!
 

Ö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:

Mikor fut le a switch default állításában levő kódrészlet?
1. Ha nincs megadva olyan eset, amelynek az értéke megegyezik a bemeneti értékkel.
2. Minden esetben.
3. Ha a bemenő változó értéke megegyezik a default szöveggel.

 
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.

Szeretne értesülni, ha új cikk jelenik meg Számtek rovatunkban? Iratkozzon fel értesítőnkre!

E-mailben értesíteni fogjuk Önt az új cikkekről. Feliratkozáshoz kérjük adja meg a nevét és az e-mail címét.

Hozzászólások

Kapcsolódó cikkek

A PHP switch állítása
Számtek
  • Erdsoft
  • 2019.10.03.
  • LXXIV. évfolyam 39. szám
A PHP switch állítása
Számtek
  • Erdsoft
  • 2019.09.25.
  • LXXIV. évfolyam 38. szám
Facebook

Támogatóink