PHP podržava više konstrukcija za kontroliranje redosljeda izvršavanja programa. Uvjetni iskazi poput if/else i switch dozvoljavaju programu da izvršava različite dijelove koda ili nijedan ovisno oodređenim uvjetima. Petlja poput while i for podržavaju ponavljanjajuća izvšavanja određenog koda
if
If iskaz provjerava istinitost izraza i ako je izraz true izvršava naredbu. Naredba izgleda ovako:
if (izraz)
naredba
Da odredite alternativnu naredbu za izvršavanje kada je izraz false koristite else naredbu.
if (izraz)
naredba
else
naredba
Primjer:
if ($provjeren_korisnik)
echo "Dobrodošao!";
else
echo "Pristup zabranjen!";
Da uključite više od jedne naredbe u if naredbi, koristite blok:
if ($provjeren_korisnik)
echo "Dobrodošao!";
$provjeren = 1;
} else {
echo "Pristup zabranjen!";
exit;
}
PHP pruža i drugačiju sintaksu za provjere i petlje:
if ($provjeren_korisnik) :
echo "Dobrodošao!";
$provjeren = 1;
else :
echo "pristup zabranjen!";
exit;
endif;
Slijedeći primjer pokazuje sličan stil sintakse kao maloprije koji je uključen u HTML:
<? if ($provjeren_korisnik): ?>
<table>
<tr>
<td>Ime:</td><td>Janica</td>
</tr>
<tr>
<td>Prezime:</td><td>Janić</td>
</tr>
</table>
<? else: ?>
Ulogirajte se.
<? endif ?>
Ternalni uvjetni operator (?:) može biti upotrebljen za jednostavne true/false provjere:
<td><? if ($phpJeSuper) echo 'da'; else echo 'ne'; ?></td>
sa ternalnim operatorom to izgleda ovako:
<? echo '<td>'.($phpJeSuper ? 'da' : 'ne').'</td>' ?>
switch
Često je slučaj da vrijednost jedna varijable može odrediti jedan od nekoliko različitih opredjeljenja. Switch naredba je dizajnirana za takve situacije
Recimo da npr. imate ovakav slučaj:
if ($ime == 'Mirko')
// izvrši nešto
elseif ($ime == 'Alan')
// izvrši nešto
elseif ($ime == 'Mario')
// izvrši nešto
elseif ($ime == 'Ana')
// izvrši nešto
Takvu naredbu možete zamijeniti sa slijedećom switch naredbom:
switch($ime) {
case 'Mirko':
// izvrši nešto
break;
case 'Alan':
// izvrši nešto
break;
case 'Mario':
// izvrši nešto
break;
case 'Ana':
// izvrši nešto
break;
}
Alternativna sintaksa bi mogla biti i ovakva:
switch($ime) :
case 'Mirko':
// izvrši nešto
break;
case 'Alan':
// izvrši nešto
break;
case 'Mario':
// izvrši nešto
break;
case 'Ana':
// izvrši nešto
break;
endswitch;
U slijedećem slućaju "Da" se ispisuje kada je $ime jednako "Alan" ili "Mario"
switch ($ime) {
case 'Alan':
case 'Mario':
print('Da');
break;
default:
print('Ne');
break;
}