Stavek if uporabljamo za pogojno izvajanje kode. Program najprej preveri zapisani pogoj. Če je pogoj resničen, se koda izvede. Če pogoj ni resničen, se ta del kode preskoči.
Osnovna pravila
- Za besedo
ifv oklepajih zapišemo pogoj. - Če ima pogoj vrednost
true, se izvede blok kode. - Če ima pogoj vrednost
false, se blok kode ne izvede. - Pri več ukazih uporabljamo zavite oklepaje
{ }, saj je zapis tako preglednejši in zanesljivejši.
Splošna oblika stavka if je:
if (pogoj) {
// koda, ki se izvede, če je pogoj resničen
}
Pomni: Stavek if omogoča enostransko odločanje. Koda se izvede le takrat, ko je pogoj izpolnjen.
Preprost primer
V spodnjem primeru se najprej preveri, ali ima spremenljivka $ime vrednost "Jaka". Če pogoj velja, se izpiše dodatno besedilo. Zadnji ukaz echo pa se izvede v vsakem primeru.
<?php
$ime = "Jaka";
if ($ime === "Jaka") {
echo "Ime je Jaka.<br>";
}
echo "Dobrodošli na spletni strani!";
?>
Dobrodošli na spletni strani!
Primer z več ukazi
Če je pogoj izpolnjen, lahko znotraj bloka if izvedemo več ukazov zapored.
<?php
$tocke = 85;
if ($tocke >= 50) {
echo "Preizkus je uspešno opravljen.<br>";
echo "Doseženo je dovolj točk.";
}
?>
Doseženo je dovolj točk.
Primerjava zapisov
Včasih lahko več pogojev zapišemo na različne načine. Eden od njih je gnezdeni stavek if, pri katerem znotraj prvega pogoja preverjamo še dodatni pogoj.
Gnezdeni stavek if
<?php
$uporabnik = "Ana";
$prijavljen = true;
if ($prijavljen) {
if ($uporabnik === "Ana") {
echo "Pozdravljena, Ana!";
}
}
?>
Tak zapis uporabimo, kadar mora biti izpolnjen najprej en pogoj, nato pa še dodatni pogoj.
Podoben pomen lahko pogosto dosežemo tudi z enim samim pogojem in logičnim operatorjem &&:
<?php
$uporabnik = "Ana";
$prijavljen = true;
if ($prijavljen && $uporabnik === "Ana") {
echo "Pozdravljena, Ana!";
}
?>
Oba zapisa sta pravilna. Gnezdeni zapis je primeren, kadar želimo pogoje razložiti po korakih. Enotni zapis z logičnim operatorjem pa je pogosto krajši.
Pozor: Pri združevanju več pogojev je treba paziti na preglednost. Če je pogoj predolg ali preveč zapleten, je smiselno razmisliti o bolj jasnem zapisu.
Priporočila
- Pogoj naj bo zapisan jasno in razumljivo.
- Za več ukazov vedno uporabljajmo zavite oklepaje
{ }. - Pri primerjanju je priporočljivo uporabiti
===, ker primerja tako vrednost kot tudi podatkovni tip. - Pri več povezanih pogojih je priporočljivo izbrati zapis, ki je preglednejši in lažje razumljiv.
Pomni: Operator === je natančnejši od operatorja ==, ker ne primerja le vrednosti, temveč tudi tip podatka.
Pogoste napake
- Namesto operatorja za primerjanje
==ali===je uporabljen operator za prirejanje=. - Pri več ukazih niso uporabljeni zaviti oklepaji, zato izvajanje kode ni dovolj jasno določeno.
- Pogoji so zapisani preveč zapleteno, kar zmanjšuje preglednost in otežuje razumevanje kode.
- Pri primerjanju se uporablja
==, čeprav bi bil zaradi večje natančnosti primernejši===. - Gnezdeni pogoji so uporabljeni tudi tam, kjer bi bil primernejši krajši in bolj pregleden zapis z logičnimi operatorji.
Pozor: Pravilno delovanje programa ni odvisno le od pravilnega pogoja, temveč tudi od jasne in pregledne strukture kode.