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. |