naslovna
programiranje
HTML
CSS
PHP
MySQL
jQuery
Osnove
Polja
Petlje
Funkcije
Forme

Petlja for

 

for (pocetniIzraz; uvjet; ponavljajuciIzraz)
{
     naredba1;
     naredba2;
}

 

 

U zagradi nakon ključne riječi for nalaze se tri izraza odvojena znakom ; .

 

  • pocetniIzraz se izvršava prije prvog kruga petlje (krug petlje je jedno izvršavanje naredbi iz tijela petlje)
  • uvjet je uvjet ponavljava i provjerava se prije svakog kruga petlje
  • ponavljajuciIzraz se izvršava nakon svakog kruga petlje

 

Svaki od ta tri izraza može se izostaviti.

Ako se izostavi uvjet, petlja će se izvršavati zauvijek.

Izrazi pocetniIzraz i ponavljajuciIzraz mogu sadržavati više naredbi, a u tom slučaju one su odvojene zarezima.

 

 

Primjer ispisivanja brojeva od 0 do 9 pomoću petlje for izgledat će ovako:

 

for ($i = 0; $i < 10; $i++)
{
     echo $i . " ";
}

 

 

Petlja for najčešće se koristi kada je broj ponavljanja petlje zadan.

U takvim slučajevima se kao brojač koristi varijabla (u gornjem primjeru $i).

U početnom izrazu se postavlja početna vrijednost brojača (0), a u uvjetu konačna vrijednost brojača (10).

U ponavljajućem izrazu se obavlja povećanje (ili ponekad smanjivanje) vrijednosti brojača.


Iznos za koji se povećava brojač petlje naziva se još i korak petlje.

 

 

 

Petlja foreach

 

Za ispis članova polja može se koristiti i petlja foreach, čija je svrha upravo to.

 

Oblik petlje foreach je ovakav:

 

foreach ($polje as $vrijednost)
{
     naredba1;
     naredba2;
}

 

 

Ova petlja će obaviti naredbe unutar tijela petlje jedanput za svakog člana polja $polje, a vrijednost trenutnog člana polja bit će u varijabli $vrijednost.

Moguće je dobiti i ključ trenutnog člana tako da se petlja foreach napiše na ovakav način:

 

foreach ($polje as $kljuc => $vrijednost)
{
     naredba1;
     naredba2;
}

 

Ključ trenutnog člana bit će u varijabli $kljuc.

 

 

Na ovaj način bi se ispisali članovi polja korištenjem petlje foreach:

 

$gradovi = array("Zagreb","Split","Rijeka");
foreach ($gradovi as $grad)
{
     echo $grad . " ";
}

 

 

Ako je uz vrijednost člana potrebno ispisati i njegov ključ, to je moguće učiniti kao u ovom primjeru:

 

$post_br = array ("Zagreb" => 10000,
                             "Split" => 21000,
                             "Rijeka" => 51000);
foreach ($post_br as $naziv => $broj)
{
     echo "$broj $naziv <br />";
}

 

 

Upotrebom petlje foreach na ovaj način nije moguće izmijeniti vrijednost člana polja. Razlog tome je što se u svakom krugu petlje stvara kopija člana polja i smješta u varijablu $broj.

Izmjena te varijable neće se odraziti na vrijednost člana polja.

 

Da bi se izmijenila vrijednost člana polja, potrebno je u petlji foreach rabiti referencu na njega, a ne kopiju vrijednosti.

Referenca se dobiva pomoću operatora & i označava da varijabla pokazuje na originalnu vrijednost, te da će se zbog toga izmjena napravljena korištenjem reference odraziti na originalnu vrijednost.

 


U sljedećem primjeru koristi se referenca da bi se izmijenila originalna vrijednost člana polja. U ovom slučaju, izmjena će se odraziti na originalnom polju:

 

$brojevi = array(0,1,2,3,4);
foreach ($brojevi as &$broj)
{
     echo $broj++;
}

 

 

Kao i uvjetne strukture, i petlje se mogu ugnježđivati jedne u drugu.

Unutrašnja petlja može se promatrati kao zaseban blok koda.

 

Sljedeći primjer pokazujeda vanjska petlja 3 puta poziva izvršavanje unutrašnje petlje, koja se izvršava 5 puta. To znači da se naredba za ispis koja se nalazi u tijelu unutrašnje petlje, izvršava 3 x 5 = 15 puta.

 

for ($i = 1; $i <= 3; $i++)
{
    for ($j = 1; $j <= 5; $j++)
    {
        echo "$i.$j ";
    }
    echo "<br />";
}

 

 

Pomoću dvije ugnježđene petlje mogu se ispisati članovi dvodimenzionalnog polja:

 

$igra = array( array ("O", "O", ""),
array ("O", "X", "O"),
array ("X", "O", "X") );
for ($i = 0; $i < 3; $i++)
{
    for ($j = 0; $j < 3; $j++)
    {
        echo igra[$i][$j] . " ";
    }
    echo "<br />";
}

Ponekad je, ako je neki uvjet ispunjen, potrebno prijevremeno završiti s izvođenjem petlje.

Izvršavanje petlje može se prekinuti navođenjem ključne riječi break.

 

Break


U ovom primjeru, petlja bi trebala ispisati brijeve od 0 do 9, ali se, zbog ključne riječi break, izvršavanje petlje prekida nakon što se $i poveća na 6:

 

for ($i = 0; $i < 10; $i++)
{
    if ($i == 6)
    {
        break;
    }
    echo $i . " ";
}

 

 

Continue

 

Također je moguće i preskakanje ostatka naredbi u petlji, i nastavak izvođenja petlje od sljedećeg kruga. Tome služi ključna riječ continue:

 

for ($i = 0; $i < 10; $i++)
{
    if ($i == 6)
    {
        continue;
    }
    echo $i . " ";
}