PHP strukture grananja
IF
Kroz primer je najlakše objasniti:
if ( $a > 0 ) echo "vrednost je veća od nule i ona je: " . $a;
Znači, ukoliko vrednost promenjljive $a veća od nule izvršiće se echo iskaz, a u
suprotno neće.
Blok iskaza
U prethodnom primeru za iskaz IF videli smo da ako je uslov zadovoljen
izvršava se samo jedan iskaz. Ukoliko želimo da izvršimo više od jednok iskaza
nakon što je uslov zadovoljen moramo koristiti "BLOK ISKAZA". Blokom iskaza se
naziva skup iskaza smeštenih u vitičastim zagradama, to jest izmedju "{ }". Da
bi smo ovo objasnili uzmimo prethodni primer i proširimo ga sa još jednim
izrazom, na primer pored ispisivanja treba da se i kvadrira promenjljiva ukoliko
je uslov zadovoljen:
if ($a > 0) {
echo "vrednost je veća od nule i ona je: " . $a . "<br>";
$kvadrat = $a * $a ;
echo "a kvadrat te vrednosti je: " . $kvadrat ;
}
Znači ako je uslov ispunjen svi iskazi unutar vitičastih zagrada biće izvršeni a
ako nije uslov ispunjen svi će biti preskočeni. Ovde smo došli do još jednog
momenta ! Kao što znamo iskaz <br> je u HTML iskaz koji služi da se sledeći
ispis na koji se naidje ispiše u novi red. Naime, ranije smo rekli da unutar PHP
programa mogu da se implementiraju i HTML iskazi, i to sad vidimo. Dakle, kao
što vidimo implementira se preko echo ili print naredbi i to tako što HTML
iskaze stavimo unutar navodnika.
Iskaz ELSE
Iskaz ELSE omogućava izvršenje iskaza ukoliko iskaz IF nije ispunjen. U
prethodna dva primera videli smo da ako uslov IF nije bio ispunjen samo se
preskače blok iskaza. Sad će mo uvesti u novom primeru mogućnost da ako uslov
nije ispunjen da se ispiše poruka "ne postoji vrednost promenjljive ili je
jednaka nuli", i u istom bloku da dodelimo vrednost promenjljivoj $a na primer
100.
if ($a > 0) {
echo "vrednost je veća od nule i ona je: " . $a . "<br>";
$kvadrat = $a * $a;
echo "a kvadrat te vrednosti je: " . $kvadrat;
} else {
echo "vrednost je manja ili jednaka nuli";
$a = 100;
}
Ako treba izvršiti samo po jedan iskaz onda nije neophodno koristiti blokove. Na primer:
if ($a>0) echo "promenjljiva je veća od nule";
else echo "promenjljiva nije veća od nule";
Iskaz ELSE IF
Po nekad treba doneti i više od dve odluke. U tom slučaju se koristi ELSE IF
uslov. Ajde da vidimo na primeru:
Za veće kupovine daje se popust:
- Za manje od 5 kupljenih artikla nema popusta,
- 5 do 10 – popust 10%,
- 11 do 15 – popust 12%,
- 16 i više - popust 15%
Evo kako bi izgledao kod:
if ($količina < 5) $procenat = 0;
else if ($količina > 4 && $količina < 11) $procenat = 10;
else if ($količina > 10 && $količina < 16) $procenat = 12;
else ($količina > 15) $procenat = 15;
Ovde uslovi jedan drugi isključuje pa će se izvršiti samo jedan ali ako se
uslovi preklapaju biće izvršen onaj na koga se prvo naidje a ostali će biti
preskočeni.
SWITCH uslov
Takodje i iskaz SWITCH odlučuje izmedju više od dve opcije. Upotrebićemo
prethodni primer:
switch ($količina) {
case ($količina<5):
$procenat=0;
break;
case ($količina>4 && $količina<11):
$procenat=10;
break;
case ($količina>10 && $količina<16):
$procenat=12;
break;
default :
$procenat=15;
break;
}
Napravimo program koji će brojeve od 1 do 5 imenovati, a ako je u pitanju neki
drugi broj izvan skupa od 1 do 5 da ispiše "vrednost promenjljive nije iz skupa
jedan do pet".
switch ($a) {
case 1:
echo "jedan";
break;
case 2:
echo "dva";
break;
case 3:
echo "tri";
break;
case 4:
echo "četri";
break;
case 5:
echo "pet";
break;
default:
echo "vrednost promenjljive nije iz skupa od jedan do pet";
break;
}
Umesto na primer "case 1:" možemo pisati i neki matematički izraz ako je
neophodno, pa tako bi bilo na primer:
case ($b * 25 + 4);
Isto može na primer i neki ovakav program da se pojavi nekad:
switch ($x) {
case ($y * 4):
case (9 * 3):
echo "Zapamti";
break;
default:
echo "Zaboravi";
}
Dakle mogu da se pojave vise CASE naredbe sa jednom BREAK naredbom.
WHILE petlja
Kao i
IF i ona ima logički uslov. Razlika izmedju
while petlje
i
IF uslova je u tome što
IF izvršava odredjeni iskaz ili blok
iskaza ako je uslov ispunjen jednom, a
while petlja izvršava blok koda
sve dok je uslov ispunjen.
While petlja se koristi kada neznamo unapred
broj iteracija. Kada je poznat broj iteracija obično se koristi
for petlja
jer je brža. Kao primer ispišimo brojeve od 10 do 20:
$a=10;
While ($a < 21) {
echo $a . "<br>" ;
$a++ ;
}