PHP za početnike 2

U prvom dijelu tutoriala naučili smo osnove PHP-a, kako se piše kod, kako se pokreće, kako izgledaju varijable. Idemo sada korak dalje.

Grananja
U gotovo svakom programu imamo potrebu za grananjima – ispitati vrijednost neke varijable kako bi znali koju akciju ćemo poduzeti. Primjer: imamo formu gdje korisnik unosi ime i prezime, ako korisnik ne unese jedno od ta dva podatka treba mu ispisati grešku.

If-elese if-else
Idemo prvo od if grananja. If može služiti za provjeru jednog uvjeta (samo jedan if), za provjeru jednog uvjeta ili ako nije ispunjen izvršava se neki drugi kod (if-else), te za provjeru više različitih uvjeta (if-else if-else).

Uzmimo za primjer provjeru slučajnog broja. Ako je broj manji od 5 ispisat ćemo jednu poruku, a ako je veći ili jednak 5 drugu poruku:

<?php
$broj = rand(1,10);
if($broj < 5){
     print "Broj je manji od 5";
}else{
     print "Broj je veci ili jednak 5";
}
?>


Znači u ovom primjeru prvo setiramo varijablu $broj koja kao vrijednost dobije nasaumični broj vrijednosti od 1 do 10. Te nakon toga provjeravamo prvo da li je broj manji od 5 i ako jest ispisujemo "Broj je manji od 5", a ako nije ispisujemo "Broj je veci ili jednak 5".
Idemo sada malo zakomplicirati isti zadatak. Napravit ćemo program koji će generirati nasaumični broj od 1 do 1000. Program treba ispisati koliko broj ima znamenaka.

<?php
$broj = rand(1,1000);
$brojZnamenki = 0;
if($broj < 10){
     $brojZnamenki = 1;
}else if($broj < 100){
     $brojZnamenki = 2;
}else if($broj < 1000){
     $brojZnamenki = 3;
}else{
     $brojZnamenki = 4;
}
print "Broj " . $broj . " ima " . $brojZnamenki . " znamenki";
?>


U ovom primjeru u varijablu $broj spremamo slučajni broj od 1 do 1000. Nakon toga setiramo varijablu $brojZnamenki kojoj na početku vrijednost postavljamo na 0. Iduća stvar je if grananje s više različitih uvjeta. Ovisno o tome koji uvjet je ispunjen dio koda unutar njega se izvršava ($brojZnamenki = x;). Na kraju ispisujemo rješenje u obliku: "Broj 321 ima 3 znamneki".

Switch – case
Idemo sada na switch-case. Sintaksa je:

switch($varijabla){
     case vrijednost_1:
          //blok koda;
          break; 
     case vrijednost_2:
          //blok koda;
          break; 
     ....
     case vrijednost_n:
          //blok koda;
          break; 
     default:
          //blok koda;
          break;
}


Znači switch-case radi tako da PHP prvo "uzme" vrijednost varijable i onda provjerava po definiranim slučajevima da li vrijednost varijable odgovara vrijednosti slučaja. Ako odgovara izvršava se blok koda dok ne naiđemo na break.

Primjer:

<?php
$a = rand(1,5);
switch($a)
{
     case 1:
          print "Jedinica":
          break;
     case 2:
          print "Dvojka"
          break;
     case 3:
          print "Trojka"
          break;
     case 4:
          print "Cetvorka"
          break;
     case 5:
          print "Petica"
          break;
}
?>


U gornjem primjeru ovisno o vrijednosti ispisat će se određena riječ. No ima još raznih varijacija korištenja switch-case:

switch($varijabla)
{
     case 1:
     case 2:
          print "Jedinica ili dvojka";
          break;
     case 3:
          print "Trojka";
          break;
}


U ovom primjeru ako je vrijednost od $varijabla 1 ili 2 ispisat će se "Jedinica ili dvojka", ako je 3 ispisat će se "Trojka". Inaće se neće ništa dogoditi.

switch($varijabla)
{
     case 1:
          print "Jedinica"
     case 2:
          print "Dvojka";
          break;
     case 3:
          print "Trojka";
          break;
}



U gornjem primjeru vidimo da u prvom slučaju nemamo break. Što će se sada desiti? Ako je vrijednost od $varijabla = 1, tada će se ispisati "Jedinica" i izvršavat će se sve dok ne dođemo na break, znači iako je $varijabla = 1, izvršit će se dio koda i pod slučajem 2, tako da će se ispisati i "Dvojka". Tu nailazimo an break i izlazi se iz switch-a. Ako je $varijable = 2, ispisat će se "Dvojka" i ako je $varijabla = 3 ispisat će se "Trojka".

To bi bilo to što se tiče grananja. Nadam se da ste naučili nešto korisno :).