...:::Programozz kedvedre!:::...
Menü
 
HTML
 
PHP
 
Elágazások

Az összes PHP szkript utasítások sorozatából áll. Ezek az az utasításokat csoportosítani lehet; utasításblokkba foglalhatók kapcsos zárójelek segítségével. Meghatározhatunk körülményeket, feltételeket az utasítás végrehajtására. Most az ilyen utasításokról lesz szó.

Az if szerkezet

Az if utasítás szerkezet egy feltételesen végrehajtandó utasítást jelöl meg.
Mindjárt elején azzal kezdeném hogy az if típusú elágazásokra gyakran van szükség, ha több választási lehetőségünk van és dönteni kívánunk az értékeikre alapozva. Ezt - mint számos más programnyelvben - az if utasítással tudjuk elérni.
Az if feltétel szintaktikája:

<?php
if ( feltétel )
   {
   végrehajtandó kód;   // csak akkor lesz végrehajtva, ha a feltétel igaz
   }
?>

Itt a zárójelek között szereplő kód csak akkor lesz végrehajtva, ha a feltétel igaz.

Ha nem akarunk bonyolódni a zárójelekkel és hamis ágat sem tervezünk akkor van egy "csúnyább" de gyorsabb megoldás:

<?php
if (feltétel)
   utasítás1;
utasítás2;
?>

Itt ha igaz a feltételünk akkor lefut az utasítás1 és 2 de ha hamis akkor csak az if után található első parancs!

fel...

Az if párja - az else ág

Meghatározhatunk egy alternatív utasítást is, ami akkor fog lefutni, ha a feltételünk hamis. Ehhez az előző kódunkat kiegészítjük egy else ággal.

<?php
if ( feltétel )
   {
   esemény ha igaz a feltétel;
   }
else
   {
   esemény ha hamis a feltétel;
   }
?>

Ügyeljünk rá, hogy az if feltétele utáni résznél sosem teszünk ; pontosvesszőt, ezt a program hibaüzenettel díjazza.
Lássunk egy konkrétabb példát:

<?php
$állapot = "aktív";
if ($allapot == "passzív")
   {
   print "Passzív az állapotom!";
   }
else
   {
   print "Aktív az állapotom";
   }
?>

A kifejezésünk eredményét megnézheted itt (7/1 demo).

fel...

Feltételek több lépésben - az elseif szerkezet

Amennyiben további feltételeket tervezünk arra is találtak megoldást a készítők számunkra. Ezt az elseif szerkezettel érhetjük el, ami tulajdonképpen több if és else ág egymás utánisága.

<?php
$atlag = 3;
if ($atlag == 1)
   {
   print "Rossz tanuló vagy!";
   }
elseif ($atlag == 2)
   {
   // ez akkor fut le ha az if feltétele hamis, és ez igaz
   print "Tanulj Tínó tanulj, kettes az átlagod..."; 
   }
elseif ($atlag == 3)
   {
   // ez pedig akkor fut le ha a korábbi feltételek hamisak de ez igaz
   print "Hááááááát"; 
   }
elseif ($atlag == 4)
   {
   print "4-es átlag, lehet ez jobb is.";
   }
elseif ($atlag == 5)
   {
   print "Gratulálunk stréber vagy!";
   }
?>

Mint látjuk, egy if kifejezést több elseif is követhet. Az elseif ág csak akkor hajtódik végre, ha az őt megelőző if kifejezés, és az összes köztes elseif kifejezések FALSE értékűek, de az adott elseif kifejezése TRUE.
Az elseif írható így is: else if, mindkettő szabályos.

A kifejezésünk eredményét megnézheted itt (7/2 demo).

fel...

A switch kifejezés

Habár ez a kifejezés személy szerint nem a kedvencem de legalább iyen értékes. Egy pontos kifejezést vár tőlünk (számot, logikai értéket vagy karakterláncot) és annak az eredményétől függő kimenetet ad.
A switch működése:

<?php

switch ( kifejezés )
   {
   case érték:
      események;
      break;
   case érték:
      események;
      break;
   default:
      események;
      break;
   }

?>

A switch megkapja a kiértékelendő kifejezésünket és annak az értékeit vizsgálja. Minden case elemmel megvizsgálja az értéket, ha igaz az érték akkor lefutnak az utasítások, majd a break utasítás befejezi a ciklust. (ha kihagyjuk a break-et akkor továbbfut a ciklusunk és ez gondokat okozhat!)
Vegyük észre még: a case után nem az eddig megszokott ; pontosvessző, hanem : kettőspont van. Ügyeljünk rá a használatkor.
A default esemény akkor fut le ha nincs igaz case ág, utána is a break zárja be az elgazásunkat.
Ha egy kiértékelendő kifejezés több lehetséges értékével kell más-más működéseket vezérelni, a while szerkezet sok elseif gépeléstől szabadíthat meg minket.

Lássunk most egy élőbb példát erre a szerkezetre is:

<?php

// kifejezésünk legyen a hét napja betűve kiírva - ma:
switch ( date("l", time()) )
   {
   case "Monday":
      print ("Kiráz a hideg, kezdődik a heti meló.");
      break;
   case "Tuesday":
   case "Wendesday":
   case "Thursday":
      print ("Dolgozni kell, nincs semmi életkedvem.");
      break;
   case "Friday":
      print ("Utolsó munkanap kezd jókedvem lenni.");
      break;
   case "Saturday":
      print ("Hurrá, hétvége. Megyünk pecázni!");
      break;
   case "Sunday":
      print ("Vekkert bekapcsolni, holnap újra meló.");
      break;
   default:
      print ("Ha ezt a feliratot látod, keress másik programozót ;-)");
      break;
   }

?>

Itt láthatunk egy újdonságot is: mivel nem tettük ki a brake utasítást a 'kedd', szerda' után, a kiértékelés nem állt meg - így tudtunk több lehetséges állapotra azonos eredményt generálni. Erről később még ejtünk néhány szót.

A kifejezésünk eredményét megnézheted itt (7/3 demo).

fel...

Az elágazások alternatív szintaxisa

Elágazásunkat néha egyszerűbben is megadhatjuk:

<?php

(kifejezés) ? esemény ha igaz a feltétel : esemény ha hamis;

?>

Úgy érzem ezen nicsen mit magyarázni ha tömören szeretünk dolgozni és nem akarunk csak igaz hamis eredményt akkor ez a tökéletes megoldás.
Lássunk erre is egy példakódot:

<?php

$iq = 130;
($iq == 128) ? print "128 Az IQ" : print "Nem annyi az IQ";

?>

Megemlítendő még, hogy az if szerkezet lezárására használhatjuk az endif utasítást is. Az alábbi két kifejezés egyenértékű:

<?php

if ($a == 12)
   {
   print "Az a most éppen 12."
   print "Azaz páros szám";
   }

?>
<?php

if ($a == 12)
   print "Az a most éppen 12."
   print "Azaz páros szám";
endif

?>

Sokszor összetett, többszörösen elágazó kifejezéseknél ez a megoldás átláthatóbb kódot eredményez.

Eddig néhol használtunk kapcsos zárójeleket, máshol nem. Miért?

Kapcsos zárójeleket csak akkor kell használni, ha több kifejezést akarunk egy blokkba összefogni - akkor ezek együtt kerülnek végrehajtásra. Ha csak egy kifejezésünk van, a kapcsos zárójel elhagyható. Az utolsó példában az endif használata helyettesítheti a kapcsos zárójeleket.

 
Bejelentkezés
Felhasználónév:

Jelszó:
SúgóSúgó
Regisztráció
Elfelejtettem a jelszót
 
XHTML
 
Linkek

Freewebsite
Programozás.lap.hu
Webmester.lap.hu

 

Veterán anime rajongók egyik kedvence a Vadmacska kommandó. Retrospektív cikket olvashatsz róla az Anime Odyssey blogban    *****    Parfümök, Olajok, Párologtatók mind egy weboldalon! Siess mert nyitási AKCIÓNK nem sokáig tart! Nagy kedvezmények várnak    *****    Dryvit, hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését! 0630/583-3168 Hívjon!    *****    Aki érdeklõdik a horoszkópja után, az nem kíváncsi, hanem intelligens. Rendeld meg most és én segítek az értelmezésben!    *****    A Múzsa, egy gruppi élményei a színfalak mögött + napi agymenések és bölcseletek    *****    KARATE OKTATÁS *** kicsiknek és nagyoknak *** Budapest I. II. XII.kerületekben +36 70 779-55-77    *****    Augusztus 26-án Kutyák Világnapja! Gyertek a Mesetárba, és ünnepeljétek kutyás színezõkkel! Vau-vau!    *****    A horoszkóp elemzésed utáni érdeklõdés, nem kíváncsiság hanem intelligencia. Rendeld meg és nem fogod megbánni. Katt!!!    *****    Cikksorozatba kezdtem a PlayStation történelmérõl. Miért indult nehezen a Sony karrierje a konzoliparban?    *****    Will Vandom Rajongói Oldala &#9829; nosztalgia W.I.T.C.H. a javából, 2006 óta &#9829; Te még emlékszel?    *****    A horoszkóp a lélek tükre, egyszer mindenkinek bele kell néznie. Tedd meg te is, én segítek értelmezni! Kattints! Várlak    *****    Nagyon részletes születési horoszkóp + 3 éves elõrejelzés + kötetlen idejû beszélgetés diplomás asztrológussal! Kattints    *****    Smart Elektronika - Arduino és Okos Elektronikai termékek webáruháza .Álmodd meg, alkosd meg, vezéreld a jövõt!    *****    Smart Elektronika - Arduino és Okos Elektronikai termékek webáruháza .Álmodd meg, alkosd meg, vezéreld a jövõt!    *****    A horoszkóp a lélek tükre, egyszer mindenkinek bele kell néznie, itt: www.csillagjovo.gportal.hu    *****    Dryvit, hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését. 0630/583-3168    *****    Nézzen velünk Debreceni Prémium lakásokat! Simonyi ingatlan Nézzen velünk Debreceni Prémium lakásokat! Simonyi ingatlan    *****    Ha egy igazán egyedi és szerethetõ sportanimével szeretnél megismerkedni, tégy egy próbát az Ookiku Furikabutte-vel.    *****    Augusztus 8-án Nemzetközi Macskanap! Addig is gyertek a Mesetárba, és olvassátok el a legújabb cicamesét! Miaúúú!    *****    Smart Elektronika - Arduino és Okos Elektronikai termékek webáruháza .Álmodd meg, alkosd meg, vezéreld a jövõt!